如何在每次点击JButton时将值增加1?

时间:2014-07-14 16:28:40

标签: java swing jbutton actionlistener jlabel

我刚刚了解了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}}

提前致谢! :)

2 个答案:

答案 0 :(得分:3)

您需要在actionPerformed方法内的JLabel上重新设置文本。即使您将total变量传入标签,所有标签获取的是它保存的当前值。标签的文字不会神奇地改变,你必须通过每次想要改变时调用setText(...)来做到这一点。

答案 1 :(得分:2)

ActionListener中,更新GUI:

public void actionPerformed(ActionEvent e)
{
    total += i;
    secondLabel.setText("Button pushes: " + total);
}