0
点赞
收藏
分享

微信扫一扫

java事件模型 内部类 如何得到事件源

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();

}



}

举报

相关推荐

0 条评论