Swing 的按鈕迴圈新增點選事件並被公共訪問
阿新 • • 發佈:2019-02-04
package Other;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test extends JFrame{
private ButtonTest bt;//定義按鈕物件
public Test(){
//下面this的是初始化JFrame視窗
this.setTitle("JButton事件例子");//標題
this.setBounds(200, 200, 400, 300);//位置和大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//預設關閉程式
this.setVisible(true);//窗體可見
this.setLayout(null);//清除預設佈局方式
//這裡只是例項化了一個物件,可以根據需要用迴圈例項化多個物件,並且每個物件都有了自己唯一單獨的事件繫結
bt = new ButtonTest(4);//例項化bt按鈕
bt.setText("點我啊啊啊" );
bt.setBounds(100, 100, 100,40);//按鈕大小和位置
this.add(bt);//把按鈕新增到jframe
}
public static void main(String[] args) {
new Test();//例項化test的時候執行構造方法就能啟動程式
}
}
/**
* 這個類繼承了JButton類並且實現了ActionListener介面
* @author Administrator
*
* */
class ButtonTest extends JButton implements ActionListener{
private int num = 0;
public ButtonTest(){this.addActionListener(this);}//這裡實現空參構造方法
public ButtonTest(int num){//這裡的過載構造方法的引數由自己定義,根據需求來實現
this.num = num;
this.addActionListener(this);//給自己新增(繫結)事件
}
//下面是get set 方法
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
@Override
public void actionPerformed(ActionEvent e) {
//這裡發生的點選事件由自己定義例如:
System.out.println(this.num++);
}
}