按钮点击事件(java)

  • Post author:
  • Post category: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. public


    ButtonFrame(){


  19. setSize(

    300


    ,


    200


    );




  20. //create buttons




  21. JButton yellowButton =

    new


    JButton(


    “Yellow”


    );


  22. JButton blueButton=

    new


    JButton(


    “Blue”


    );


  23. JButton redButton=

    new


    JButton(


    “Red”


    );



  24. /*



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



  26. 然后再将JPanel置为JFrame的内容



  27. */




  28. buttonPanel=

    new


    JPanel();




  29. //add buttons to panel




  30. buttonPanel.add(yellowButton);

  31. buttonPanel.add(blueButton);

  32. buttonPanel.add(redButton);



  33. //add panel to frame




  34. add(buttonPanel);



  35. //create button actions




  36. ColorAction yellowAction =

    new


    ColorAction(Color.YELLOW);


  37. ColorAction blueAction =

    new


    ColorAction(Color.BLUE);


  38. ColorAction redAction =

    new


    ColorAction(Color.RED);




  39. //associate actions with buttons




  40. yellowButton.addActionListener(yellowAction);

  41. blueButton.addActionListener(blueAction);

  42. redButton.addActionListener(redAction);

  43. }


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





  45. private




    class


    ColorAction


    implements


    ActionListener{



  46. private


    Color backgroundColor;



  47. public


    ColorAction(Color c){


  48. backgroundColor = c;

  49. }


  50. public




    void


    actionPerformed(ActionEvent event){



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




  52. buttonPanel.setBackground((backgroundColor));

  53. }

  54. }

  55. }

例如,如果在标有“

Yellow

”的按钮上点击了一下,此按钮绑定的事件yellowAction对象的actionPerformed

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

置为黄色了








版权声明:本文为kabiding原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。