你可看一下awt方面的书,awt里面都有处理这些的事件

解决方案 »

  1.   

    BOOK我没有,我只是来问的。
    外加一下:如果我要按下Ctrl+c或Ctrl+Alt+Delete时这样如何判断?它们区分大小写吗?
      

  2.   

    如果要贴出来的话,我想这个框里也装不下
    从swing/awt的原理到事件监听的方法,和API
    也算是一本书了
    去买一本 java2图形编程:swing篇吧
    80来块,还是很有用的
    学些基础的理论再来问具体的问题,更有效率一些
      

  3.   

    一个简单的小例子,还不能够完全满足你的功能需求。
    不过,会有一点帮助吧。import java.awt.*;
    import java.awt.event.*;public class cal3 extends Frame implements ActionListener
    {
    private Frame f;
    private Label l;
    private Panel p;
    private Button [] b=new Button[16];
    private String str[]={"7","8","9","/","4","5","6","*",
                          "1","2","3","-","C","=","0","+"};
            private String op;
            private float total=0,num=0;
                          
    public  cal3(String title)
    {
    f=new Frame(title);
    p=new Panel();
    l=new Label("0",Label.RIGHT);
    ///////////////////////
    MenuBar mb=new MenuBar();
    f.setMenuBar(mb);
    Menu m=new Menu("File");
    mb.add(m);
    MenuItem mi=new MenuItem("Exit");
    m.add(mi);
    mi.addActionListener(this);
    f.addWindowListener(new MyWindowListener()); ////////////////////////

    }
    public void launchCalculator()
    {
                    f.setLayout(new BorderLayout());;
             f.add("North",l);
                    p.setLayout(new GridLayout(4,4,4,4));
             ///////////////////////////////////////
             for (int i=0;i<b.length;i++)
             {
                  b[i]=new Button(str[i]);
         p.add(b[i]);
                  b[i].addActionListener(this);
             } 
             f.add("Center",p);
             l.setBackground(Color.yellow);
             p.setBackground(Color.blue);
    f.setSize(200,280);
    f.setVisible(true);
    }
    public void actionPerformed(ActionEvent e)
    {
    String s=e.getActionCommand();
    switch (s.charAt(0))
    {
    case 'E':
    {
    MyDialog md=new MyDialog(this,"Really exit ?",true);
    md.setVisible(true);
    return;
    }
    case 'C':
    {
    num=0;
    break;
    }
    case '+':
    case '-':
    case '*':
    case '/':
    {
    total=num;op=s;num=0;
    break;
    }
    case '=':
    {
    switch (op.charAt(0))
    {
    case '+':
    {total+=num;num=total;break;}
    case '-':
    {total-=num;num=total;break;}
    case '*':
    {total*=num;num=total;break;}
    case '/':
    {total/=num;num=total;break;}
    }
    break;
    }
    default:
    num=num*10+Float.valueOf(s).floatValue();
    break;
    }
    l.setText((new Float(num)).toString());
       }
     
    /////////////////////////////////////////////
    class MyDialog extends Dialog implements ActionListener
    {
    public MyDialog(Frame f,String t,boolean m)
    {
    super(f,t,m);
    Button b1=(new Button("yes"));
    Button b2=(new Button("no"));
    b1.addActionListener(this);
    b2.addActionListener(this);
    add(b1,"North");
    add(b2,"South");
    setSize(200,100);
    }
            public void actionPerformed(ActionEvent e)
    {
    String s=e.getActionCommand();
    if(s=="yes")
    System.exit(0);
         else if(s=="no")
    setVisible(false);
    }
    }
    class MyWindowListener extends WindowAdapter
    {
    public void windowClosing(WindowEvent e)
    {
    MyDialog md=new MyDialog(f,"Really Exit ?",true);
    md.setVisible(true);
    return;

    }

    }

    /////////////////////////////////////////////////
    public static void main(String[] args)
    {
    cal3 guiWindow=new cal3("This is a little Calculator !");
    guiWindow.launchCalculator();
    }
    }
      

  4.   

    昨天晚上杀了几个小时,会了一点点,就差判断组合键Ctrl+c了还有一个是控制文本框的长度。有人搞得定吗?
      

  5.   

    书我一定去买,不过上头要星期五交东西,没办法,只得努力在这个星期内杀定它。星期六再去买BOOK了。希望各位不要嫌问题太傻,我也是没办法呀!
      初学的人的无耐。
      

  6.   

    java.awt.event.*
    KeyListener
    可帮你解决响应键盘事件的问题建议用堆栈方式解决计算过程问题