您的位置:首页 > 编程语言 > Java开发

按钮点击事件(java)

2018-02-03 14:33 330 查看
在java中,都将事件的相关信息封装在一个事件对象中,所有的事件对象都最终派生于java.util.EventObje
类。当然,每个事件类型还有子类,例如ActionEvent和WindowEvent。不同的事件源可以产生不同类别

的事件。例如,按钮可以发送一个ActionEvent对象,而窗口可以发送WindowEvent对象。

下面以一个响应按钮点击事件简单示例来说明所需要知道的所有细节。在这个示例中,想要在一个面板中

放置三个按钮,添加三个监听器对象用来作为按钮的动作监听器。只要用户点击面板上的任何一个按钮,

相关的监听器对象就会接收到一个Action Event对象,他表示有个按钮被点击了。在示例程序中,监听器

对象将改变面板的背景颜色。

import java.awt.*;  

import java.awt.event.*;  

import javax.swing.*;  

public class Main {  

    public static void main(String[] args)  

    {  

        EventQueue.invokeLater(()->{  

                    JFrame frame=new ButtonFrame();  

                    frame.setTitle("ListenerTest");  

                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  

                    frame.setVisible(true);  

                }  

        );  

    }  

}  

class ButtonFrame extends JFrame {  

    private JPanel buttonPanel;  

  

    public ButtonFrame(){  

        setSize(300,200);  

  

        //create buttons  

        JButton yellowButton = new JButton("Yellow");  

        JButton blueButton=new JButton("Blue");  

        JButton redButton=new JButton("Red");  

/* 

由于不能将组件加入到JFrame中,我们使用JPanel(一个面板容器类,可以放按钮、图片、标签等)作为中间容器, 

然后再将JPanel置为JFrame的内容 

 */  

        buttonPanel=new JPanel();  

  

        //add buttons to panel  

        buttonPanel.add(yellowButton);  

        buttonPanel.add(blueButton);  

        buttonPanel.add(redButton);  

  

        //add panel to frame  

        add(buttonPanel);  

  

        //create button actions  

        ColorAction yellowAction = new ColorAction(Color.YELLOW);  

        ColorAction blueAction = new ColorAction(Color.BLUE);  

        ColorAction redAction = new ColorAction(Color.RED);  

  

        //associate actions with buttons  

        yellowButton.addActionListener(yellowAction);  

        blueButton.addActionListener(blueAction);  

        redButton.addActionListener(redAction);  

    }  

    //当按钮被点击时,将面板的颜色设置为指定的颜色,这个颜色存储在监听器类中  

    private class ColorAction implements ActionListener{  

        private Color backgroundColor;  

        public ColorAction(Color c){  

            backgroundColor = c;  

        }  

        public void actionPerformed(ActionEvent event){  

            //ActionEvent对应按钮点击、菜单选择、选择列表项或在文本框中ENTER  

            buttonPanel.setBackground((backgroundColor));  

        }  

    }  

}  

例如,如果在标有“Yellow”的按钮上点击了一下,此按钮绑定的事件yellowAction对象的actionPerformed

方法就会被调用。这个对象的backgroundColor实例域被设置为Color.YELLOW,现在就将面板的背景色设

置为黄色了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息