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()
返回发生这个事件的对象的一个引用。