第一次写博客,写的比较烂。经常在网上看别人写,对着别人的代码仿写,不然自己也来试试好了。
#########################
这里主要写的是按钮事件监听,以及相关实现
1.package com.zhang.CSD1;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.sun.org.apache.bcel.internal.generic.NEW;
//继承ActionListener,本身当作事件监听类
public class ButtonEvent1 implements ActionListener{
//全局变量
JButton jButton1;
JButton jButton2;
JPanel jPanel;
public ButtonEvent1() {
JFrame jFrame=new JFrame("小小换肤");
jPanel=new JPanel();
jButton1=new JButton("黄色");
jButton2=new JButton("红色");
jButton1.addActionListener(this);
jButton2.addActionListener(this);
jPanel.add(jButton1);
jPanel.add(jButton2);
jFrame.add(jPanel);
jFrame.setLocation(500, 500);
jFrame.setSize(500, 500);
jFrame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jButton1) {
jPanel.setBackground(Color.YELLOW);
}else if(e.getSource()==jButton2) {
jPanel.setBackground(Color.red);
}
}
public static void main(String[] args) {
new ButtonEvent1();
}
}
这是结果显示
2.匿名内部类。我比较喜欢这种写法,感觉更方便
package com.zhang.CSD1;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ButtonEvent2 {
//全局变量
JButton jButton1;
JButton jButton2;
JPanel jPanel;
public ButtonEvent2() {
JFrame jFrame=new JFrame("小小换肤");
jPanel=new JPanel();
jButton1=new JButton("黄色");
jButton2=new JButton("红色");
//********************主要区别*****************
jButton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jPanel.setBackground(Color.yellow);
}
});
jButton2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jPanel.setBackground(Color.red);
}
});
jPanel.add(jButton1);
jPanel.add(jButton2);
jFrame.add(jPanel);
jFrame.setLocation(500, 500);
jFrame.setSize(500, 500);
jFrame.setVisible(true);
}
public static void main(String[] args) {
new ButtonEvent1();
}
}
3.内部类..用的比较少
package com.zhang.CSD1;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import sun.net.www.content.image.jpeg;
public class ButtonEvent3 {
//全局变量
JButton jButton1;
JButton jButton2;
JPanel jPanel;
public ButtonEvent3() {
JFrame jFrame=new JFrame("小小换肤");
jPanel=new JPanel();
jButton1=new JButton("黄色");
jButton2=new JButton("红色");
jButton1.addActionListener(new ColorEvent() );
jButton2.addActionListener( new ColorEvent());
jPanel.add(jButton1);
jPanel.add(jButton2);
jFrame.add(jPanel);
jFrame.setLocation(500, 500);
jFrame.setSize(500, 500);
jFrame.setVisible(true);
}
public static void main(String[] args) {
new ButtonEvent3();
}
class ColorEvent implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jButton1) {
jPanel.setBackground(Color.yellow);
}else if(e.getSource()==jButton2) {
jPanel.setBackground(Color.red);
}
}
}
}
4.外部类和内部类的写法差不多,不想写了