1.引言
在Swing窗口中,我们时常会点击按钮进行计数,例如点击按钮A,第一次弹出窗口1,第二次弹出窗口2....以及按钮的快捷键设置。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class TestCount {
String sum = "Number of button clicks: ";
//用于计数的count需要作为全局变量,如果在监听器中添加该变量,则会一直被初始化,cout++无效
int count = 0;
JFrame f = new JFrame("计数测试");
JButton b1 = new JButton("click me!");
JLabel l1 = new JLabel(sum+count);
public TestCount() {
f.setSize(300, 280);
f.setResizable(false);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container content=f.getContentPane();
content.setLayout(null);
b1.setBounds(100, 60, 100, 40);
//按钮的快捷键的设置,可以按ALT+I进行操作
b1.setMnemonic(KeyEvent.VK_I);
content.add(b1);
l1.setBounds(80, 200, 150, 30);
content.add(l1);
action();
f.setVisible(true);
}
public void action() {
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//如果需要弹出1,2,3等窗口,则添加if语句配合count使用,例如if(count==1){...}, else if(count==2) {...}, else{...}
//如果在这里定义int count=0;会一直显示1
count++;
//为了响应标签中的计数,需要在监听器中为标签设置内容,否则计数一直为0
l1.setText(sum + count);
}
});
}
public static void main(String args[]) {
new TestCount();
}
}