JAVA图形界面中的事件处理

    技术2023-03-29  113

    在JAVA应用程序或者Applet运行时,如果用户进行某个操作,例如单机鼠标键或者输入字符,程序应当做出适当响应。 那举个例子来说,当我们点击某个按钮,会出现一个按钮事件,那么这个就是按钮的事件处理; 在这里呢,我们还是通过举例子来说明JAVA的事件处理; 首先我们在容器中加入一个按钮,我们给这个按钮添加事件处理;

    public static void main(String[] args) { JFrame frame=new JFrame("event"); JButton b1; b1=new JButton("b1"); frame.getContentPane().setLayout(new FlowLayout()); frame.add(b1); frame.setSize(300,100); frame.setVisible(true); }

    运行后的话;

    现在我想点击这个按钮,在控制台有字符串输出;

    首先我们要新建一个类; 加上接口并且重写其中方法(固定的);

    package array; import java.awt.event.*; public class ButtonHandler implements ActionListener{ public void actionPerformed(ActionEvent e){ System.out.println("点击了按钮"); } }

    当然还要加上头文件;

    然后回到主函数加上一行代码;

    b1.addActionListener(new ButtonHandler());

    就完全可以了;

    public static void main(String[] args) { JFrame frame=new JFrame("event"); JButton b1; b1=new JButton("b1"); frame.getContentPane().setLayout(new FlowLayout()); frame.add(b1); b1.addActionListener(new ButtonHandler()); frame.setSize(300,100); frame.setVisible(true); }

    然后我们运行看一下效果; 是不是很简单;

    然后介绍第二种方法;

    我们直接及新建一个类让他继承与JBtton并且写上他的接口; 写好构造方法,还有重写的actionPerformed方法;

    import java.awt.event.*; import javax.swing.*; public class Mybutton extends JButton implements ActionListener{ public Mybutton(String str) { super(str); this.addActionListener(this); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("点击了按钮"); }

    然后我们的主函数里面,就可以一直用这个按钮了,想用的时候我就建一个,不用再写一个事件处理的类了;

    public static void main(String[] args) { JFrame frame=new JFrame("event"); Mybutton b1; b1=new Mybutton("b1"); frame.getContentPane().setLayout(new FlowLayout()); frame.add(b1); b1.addActionListener(new ButtonHandler()); frame.setSize(300,100); frame.setVisible(true); }

    运行效果和刚才的一模一样;

    第三种方法,我们不用新建类,直接就在主函数里面写全部的,如果代码不多的话可以这样,但如果代码很多就不建议这样; 直接来代码吧;

    import java.awt.*; import javax.swing.*; import java.awt.event.*; public class test { public static void main(String[] args) { JFrame frame=new JFrame("event"); JButton b1; b1=new JButton("b1"); b1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub System.out.println("点击了按钮"); } }); frame.getContentPane().setLayout(new FlowLayout()); frame.add(b1); b1.addActionListener(new ButtonHandler()); frame.setSize(300,100); frame.setVisible(true); } }

    虽然不用写接口和继承; 但是依旧要写重写的方法; 然后就是格式不要出错; 运行结果和上面的都一样;

    到这里三种事件处理的方法就说完了; OK,结束; END;

    Processed: 0.026, SQL: 9