package event;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
/*
* 监听器类定义为内部类可以在处理UI的方法内直接new 相当不错
* 得到是哪个组件的事件 两种方法:
*
1. Object s=e.getSource(); if(s==buttonAdd)//与组件对象名比较
*
2. String s = e.getActionCommand(); if(s.equals("增加"))//与组件名称比较(如按钮上的"确定")
*/
public class EventStartDemo2 extends JFrame{
private static int i=0;
JButton buttonAdd;
JButton buttonMinus;
public EventStartDemo2() {
buttonAdd = new JButton("增加");
buttonMinus = new JButton("减少");
Container ctn = this.getContentPane();
ctn.setLayout(new BoxLayout(ctn, BoxLayout.X_AXIS));
ctn.add(buttonAdd);
ctn.add(buttonMinus);
buttonAdd.addActionListener(new ButtonAction());
buttonMinus.addActionListener(new ButtonAction());
//主角不是JF而是此类对象
setLocationRelativeTo(null);
setResizable(false);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/*//内部类 相当不错的选择
class ButtonAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
Object s=e.getSource();
if(s==buttonAdd) {
i++;
System.out.println("你按下了增加键,此时i="+i);
}else if(s==buttonMinus){
i--;
System.out.println("你按下了减少键,此时i="+i);
}
}
}*/
//方法2
class ButtonAction implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
if(s.equals("增加")) {
i++;
System.out.println("你按下了增加键,此时i="+i);
}else if(s.equals("减少")){
i--;
System.out.println("你按下了减少键,此时i="+i);
}
}
}
public static void main(String[] args) {
new EventStartDemo2();
}
}