按钮点击事件(java)

在java中,都将事件的相关信息封装在一个事件对象中,所有的事件对象都最终派生于java.util.EventObje
类。当然,每个事件类型还有子类,例如ActionEvent和WindowEvent。不同的事件源可以产生不同类别
的事件。例如,按钮可以发送一个ActionEvent对象,而窗口可以发送WindowEvent对象。


下面以一个响应按钮点击事件简单示例来说明所需要知道的所有细节。在这个示例中,想要在一个面板中
放置
三个按钮,添加三个监听器对象用来作为按钮的动作监听器。只要用户点击面板上的任何一个按钮,
相关的监
听器对象就会接收到一个Action Event对象,他表示有个按钮被点击了。在示例程序中,监听器
对象将改变面
板的背景颜色。

  1. import java.awt.*;  
  2. import java.awt.event.*;  
  3. import javax.swing.*;  
  4. public class Main {  
  5.     public static void main(String[] args)  
  6.     {  
  7.         EventQueue.invokeLater(()->{  
  8.                     JFrame frame=new ButtonFrame();  
  9.                     frame.setTitle("ListenerTest");  
  10.                     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  11.                     frame.setVisible(true);  
  12.                 }  
  13.         );  
  14.     }  
  15. }  
  16. class ButtonFrame extends JFrame {  
  17.     private JPanel buttonPanel;  
  18.   
  19.     public ButtonFrame(){  
  20.         setSize(300,200);  
  21.   
  22.         //create buttons  
  23.         JButton yellowButton = new JButton("Yellow");  
  24.         JButton blueButton=new JButton("Blue");  
  25.         JButton redButton=new JButton("Red");  
  26. /* 
  27. 由于不能将组件加入到JFrame中,我们使用JPanel(一个面板容器类,可以放按钮、图片、标签等)作为中间容器, 
  28. 然后再将JPanel置为JFrame的内容 
  29.  */  
  30.         buttonPanel=new JPanel();  
  31.   
  32.         //add buttons to panel  
  33.         buttonPanel.add(yellowButton);  
  34.         buttonPanel.add(blueButton);  
  35.         buttonPanel.add(redButton);  
  36.   
  37.         //add panel to frame  
  38.         add(buttonPanel);  
  39.   
  40.         //create button actions  
  41.         ColorAction yellowAction = new ColorAction(Color.YELLOW);  
  42.         ColorAction blueAction = new ColorAction(Color.BLUE);  
  43.         ColorAction redAction = new ColorAction(Color.RED);  
  44.   
  45.         //associate actions with buttons  
  46.         yellowButton.addActionListener(yellowAction);  
  47.         blueButton.addActionListener(blueAction);  
  48.         redButton.addActionListener(redAction);  
  49.     }  
  50.     //当按钮被点击时,将面板的颜色设置为指定的颜色,这个颜色存储在监听器类中  
  51.     private class ColorAction implements ActionListener{  
  52.         private Color backgroundColor;  
  53.         public ColorAction(Color c){  
  54.             backgroundColor = c;  
  55.         }  
  56.         public void actionPerformed(ActionEvent event){  
  57.             //ActionEvent对应按钮点击、菜单选择、选择列表项或在文本框中ENTER  
  58.             buttonPanel.setBackground((backgroundColor));  
  59.         }  
  60.     }  
  61. }  
例如,如果在标有“ Yellow”的按钮上点击了一下,此按钮绑定的事件yellowAction对象的actionPerformed
方法就会被调用。这个对象的backgroundColor实例域被设置为Color.YELLOW,现在就将面板的背景色设
置为黄色了




  • 33
    点赞
  • 157
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值