www.pudn.com > z42.rar > mycanvas4_3.java


// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov. 
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html 
// Decompiler options: packimports(3) fieldsfirst ansi  
// Source File Name:   Applet1.java 
 
import java.awt.*; 
 
class mycanvas4_3 extends Canvas 
{ 
 
    int param; 
    String strbuf[] = { 
        "", "id", "+", "*", "(", ")", "$", "E", "E'", "T",  
        "T'", "F", "E-->TE'", "synch", "E'-->+TE'", "E'-->ε", "T-->FT'", "T'-->ε", "T'-->*FT'", "F-->id",  
        "F-->(E)", "出错,跳过", "表项为synch,出错,弹出非终结符号" 
    }; 
    int buf[][] = { 
        { 
            0, 1, 2, 3, 4, 5, 6 
        }, { 
            7, 12, 0, 0, 12, 13, 13 
        }, { 
            8, 0, 14, 0, 0, 15, 15 
        }, { 
            9, 16, 13, 0, 16, 13, 13 
        }, { 
            10, 0, 17, 18, 0, 17, 17 
        }, { 
            11, 19, 13, 13, 20, 13, 13 
        } 
    }; 
 
    public mycanvas4_3() 
    { 
        param = -1; 
    } 
 
    public void paint(Graphics g) 
    { 
        FontMetrics fm = g.getFontMetrics(); 
        g.setColor(Color.black); 
        g.drawLine(0, 0, 410, 0); 
        g.drawLine(0, 40, 410, 40); 
        g.drawLine(0, 140, 410, 140); 
        g.drawLine(0, 0, 0, 140); 
        g.drawLine(50, 0, 50, 140); 
        g.drawLine(410, 0, 410, 140); 
        g.drawString("非终结", 5, 20); 
        g.drawString("符号", 5, 40); 
        g.drawString("输入符号", 170, 19); 
        g.drawLine(50, 20, 410, 20); 
        for(int i = 0; i < 5; i++) 
            g.drawLine(110 + i * 60, 20, 110 + i * 60, 140); 
 
        for(int i = 0; i < 6; i++) 
        { 
            for(int j = 0; j < 7; j++) 
            { 
                if(param != i * 10 + j && (param / 10 != i || j != 0) && (param % 10 != j || i != 0)) 
                    g.setColor(Color.black); 
                else 
                    g.setColor(Color.red); 
                String str = strbuf[buf[i][j]]; 
                g.drawString(str, (20 + j * 60) - fm.stringWidth(str) / 2, 20 * i + 35); 
            } 
 
        } 
 
    } 
 
    public void setParam(int i) 
    { 
        param = i; 
    } 
}