我刚刚了解了ActionListener
,我的任务是使用与JButton
关联的JLabel
创建一个简单的应用程序,该int
显示import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ButtonPanel2 extends JPanel implements ActionListener {
JButton button2;
JLabel secondLabel;
int i = 1;
int total = 0;
ButtonPanel2()
{
button2 = new JButton("Push");
add(button2);
button2.addActionListener(this);
secondLabel = new JLabel("Button pushes: " + total);
add(secondLabel);
}
public void actionPerformed(ActionEvent e)
{
total += i;
}
}
每次单击时增加值1。这是我的编码:
import java.awt.*;
import javax.swing.*;
class TestButtonPanel2 {
public static void main(String [] args)
{
JFrame buttonFrame2 = new JFrame("Button Panel 2");
ButtonPanel2 panel2 = new ButtonPanel2();
buttonFrame2.add(panel2);
buttonFrame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
buttonFrame2.setSize(400 , 400);
buttonFrame2.setVisible(true);
}
}
和司机班:
{{1}}
提前致谢! :)
答案 0 :(得分:3)
您需要在actionPerformed方法内的JLabel上重新设置文本。即使您将total
变量传入标签,所有标签获取的是它保存的当前值。标签的文字不会神奇地改变,你必须通过每次想要改变时调用setText(...)
来做到这一点。
答案 1 :(得分:2)
在ActionListener
中,更新GUI:
public void actionPerformed(ActionEvent e)
{
total += i;
secondLabel.setText("Button pushes: " + total);
}