事件处理 例: import java.applet.Applet; import java.awt.*; 例: import java.applet.Applet; import java.awt.*; import java.awt.event.*; //检测由用户触发的事件 public class ColorCircle extends Applet implements ActionListener //用动作监听器配合按钮工作 { public Button btnYellow, btnRed, btnGreen, btnBlue; //声明4个,分别是黄按钮、红按钮、绿按钮、蓝按钮 public Color myColor;//声明一种新颜色
事件处理 public void init() //初始化 { btnYellow = new Button(“黄按钮”); btnYellow.setBackground(Color.yellow); btnYellow.setForeground(Color.white) btnRed = new Button(“红按钮”); btnRed.setBackground(Color.red); btnRed.setForeground(Color.white); btnGreen = new Button(“绿按钮”); btnGreen.setBackground(Color.green); btnGreen.setForeground(Color.white); btnBlue = new Button(“蓝按钮”); btnBlue.setBackground(Color.blue); btnBlue.setForeground(Color.white);
事件处理 yColor = Color.white; //设置背景颜色 btnYellow.addActionListener(this); btnRed.addActionListener(this); btnGreen.addActionListener(this); btnBlue.addActionListener(this); //监听事件 add(btnYellow); add(btnRed); add(btnGreen); add(btnBlue); //在面板内添加按钮 } public void paint(Graphics g) { g.setColor(myColor); //设置颜色 g.fillOval(50,50,50,50); //画圆 }
事件处理 public void actionPerformed(ActionEvent ae) { if(ae.getActionCommand().equals(“红按钮”)) myColor=Color.red; else if(ae.getActionCommand().equals(“绿按钮”)) myColor=Color.green; else if(ae.getActionCommand().equals(“黄按钮”)) myColor=Color.yellow; else if(ae.getActionCommand().equals(“蓝按钮”)) myColor=Color.blue; repaint();//重画 }
事件处理 “import java. awt. event. * ;”是一个新的导入语句。它使ActionListener类可供该小程序使用,以便检测由用户触发的事件。 “public class ColorCircle extends Applet implements ActionListener”中的implements ActionListener与动作接口,它们允许此小程序用动作监听器来配合按钮工作,没有它们,程序将不能够检测和对用户的单击该按钮作出响应。
事件处理 “init”方法中代码: “bon1.addActionListener(this); ” 是对按钮“注册一个动作监听器”。 addActionListener()要求必须在其圆括 号内放一个对象,如果遗漏了它,将不能运行该程序。
事件处理 如果想要使用类ActionListener中的任何部分,就必须定义一个称为actionPerformed()的方 法,并且它必须有且只有一个参数,正如上面代码所示定义成public void actionPerformed (ActionEvent e),这里参数e是类ActionEvent的一个对象,它存贮了关于用户刚刚执行事件的细节。用户动作不同,e包含的信息不同,为了让小程序知道应该如何响应这个事件,就必须从e抽出这些信息。 在这个小程序中仅有按钮,所以如果用户单击按钮之一,则e将含有显示在那个按钮中的背景颜色。
事件处理 我们可以用下列ActionEvent类的方法 “e. getActionCommand()”抽取该文本。 在代码中,小程序利用String类的equals()方法比较抽 取获得的文本(即按钮标签的内容)和字符串,设置内 容。在检查之后小程序调用repaint()方法,它将调用 paint()方法。 if语句具有形式: if(condition) statement即条件(condition)成立(true),则执行statement语句。 否则执行下一条语句。