1 package com.http; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 6 import javax.swing.*; 7 8 import com.http.TestSwing2.HelloWorldFrame; 9 10 public class SwingButton extends JFrame11 {12 private JPanel buttonPanel;13 private static final int DEFAULT_WIDTH = 300;14 private static final int DEFAULT_HEIGHT = 200;15 16 public SwingButton()17 {18 setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);19 //创建按钮20 JButton yellowButton = new JButton("yellow");21 JButton blueButton = new JButton("blue");22 JButton redButton = new JButton("red");23 24 buttonPanel = new JPanel();25 26 //向面板中添加按钮27 buttonPanel.add(yellowButton);28 buttonPanel.add(blueButton);29 buttonPanel.add(redButton);30 31 //向frame中添加面板32 add(buttonPanel);33 34 //实例化事件35 ColorAction ya = new ColorAction(Color.YELLOW);36 ColorAction ba = new ColorAction(Color.BLUE);37 ColorAction ra = new ColorAction(Color.RED);38 39 //添加按钮事件,改变面板的颜色40 yellowButton.addActionListener(ya);41 blueButton.addActionListener(ba);42 redButton.addActionListener(ra);43 44 }45 46 //触发后执行的事件,继承ActionListener,并重写actionPerformed接口47 public class ColorAction implements ActionListener48 {49 50 private Color backgroundColor;51 public ColorAction(Color c)52 {53 backgroundColor = c;54 }55 56 @Override57 public void actionPerformed(ActionEvent event) {58 // TODO Auto-generated method stub59 buttonPanel.setBackground(backgroundColor);60 } 61 }62 63 public static void main(String[] argvs)64 {65 EventQueue.invokeLater(new Runnable()66 {67 public void run()68 {69 70 JFrame frame = new SwingButton();71 frame.setTitle("SwingButton");72 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);73 frame.setVisible(true);74 }75 });76 77 }78 79 }