java lambda 实现事件监听 程序

来源:互联网 发布:麦迪巅峰数据 编辑:程序博客网 时间:2024/06/08 22:24
package NEW_DATE_SEQUENCE_PACKAGE;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.File;
public class ButtonFrame {    public static void main(String [] args)    {        EventQueue.invokeLater(()->        {            JFrame frame=new ButtonFrame_2();            frame.setTitle("ImageTest...........");            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);            frame.setVisible(true);         });    }}
 class ButtonFrame_2  extends JFrame{    private JPanel buttonPanel;    private static final int DEFAULT_WIDTH=300;    private static final int DEFAULT_HEIGHT=200;    public ButtonFrame_2()    {        setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);        buttonPanel=new JPanel();        add(buttonPanel);
    JButton yellowButton=new JButton("yellow");    JButton blueButton=new JButton("blue");    JButton redButton=new JButton("red");    JButton what=new JButton("what");    buttonPanel.add(yellowButton);    buttonPanel.add(blueButton);    buttonPanel.add(redButton);    buttonPanel.add(what);    what.addActionListener(event->{        buttonPanel.setBackground(Color.PINK);    });    ColorAction y=new ColorAction(Color.YELLOW);    ColorAction b=new ColorAction(Color.blue);    ColorAction r=new ColorAction(Color.RED);    yellowButton.addActionListener(y);    blueButton.addActionListener(b);    redButton.addActionListener(r);     makeButton("1",Color.GREEN);     makeButton("2",Color.CYAN);}/**     * 辅助方法     */    public void makeButton(String n,Color c)    {        JButton simpleButton=new JButton(n);        buttonPanel.add(simpleButton);        simpleButton.addActionListener(event->        {            buttonPanel.setBackground(c);        });    }
    private class ColorAction implements ActionListener    {        private Color col;        public ColorAction(Color c)        {            col=c;        }        public void actionPerformed(ActionEvent event)        {            buttonPanel.setBackground(col);        }    }
java.awt.event.ActionEvent    String getActionCommand();    返回与这个动作事件关联的命令字符串。如果这个动作源自一个按钮,返回的命令字符串就是按钮的标签。除非已经用setActionCommand方法改变了命令字符串。java.util.EventObject    Object getSourse();    返回发生这个事件的对象的一个引用。
原创粉丝点击