我对Java比较陌生,决定用Swing搞砸一下。我想构建一个应用程序,根据按钮点击向上或向下更新计数器。
一切都很顺利,直到我必须在其中一个按钮上添加一个监听器。我添加了一个按钮并修改了我在网上找到的一段代码:
addHome.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//Execute when button is pressed
addHomeCount++;
}
});
我希望在单击按钮时增加addHomeCount。如果我添加
System.out.println(addHomeCount);
在方法中,它将代码完美地输出到控制台窗口。但是,当我在方法之外添加相同的代码时,它只返回0.
有没有办法可以在actionPerformed方法之外增加addHomeCount整数并将其放在JLabel中?我已经阅读了关于getActionCommand()的内容,但我不确定这是否是我在这里寻找的内容。
答案 0 :(得分:3)
打印0的原因是因为监听器外部的代码立即执行。只有在按下按钮时才会执行侦听器代码,因此直到print语句之后才会执行该操作。
我认为你需要做的就是从动作监听器中设置JLabel文本。
JLabel addHomeLabel = new JLabel();
//add label to gui...
addHome.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//Execute when button is pressed
addHomeCount++;
addHomeLabel.setText("Button pressed " + addHomeCount);
}
});