我一直在努力学习java大约一个星期但我一直坚持一个bug。这应该是每次按下按钮时将变量“click”增加1,但我一直得到同样的错误:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Testclass {
private JFrame frame;
private JPanel panel;
private JButton button1;
private JLabel label;
public Testclass () {
gui();
}
public void gui () {
final int clicks = 0;
frame = new JFrame("Test");
frame.setVisible(true);
frame.setSize(600,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
panel.setBackground(Color.cyan);
button1 = new JButton("Test");
label = new JLabel("Button Click Count: ");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
clicks++;
label.setText("Click Count: " +clicks);
}
});
panel.add(label);
panel.add(button1);
frame.add(panel);
}
public static void main (String[] args) {
new Testclass();
}
}
它一直在第42行给我一个错误,其中“点击”增加“此行的多个标记” 任何帮助表示赞赏。谢谢,杰克
答案 0 :(得分:3)
final int clicks = 0;
将clicks
作为实例成员。 Nowit是最后的,你不能增加它。
如果您在当前位置删除了final,则无法在actionPerformed
内访问,所以请将其作为实例成员。
public class Testclass {
private int clicks = 0;
答案 1 :(得分:1)
将clicks
声明为实例变量,因为您无法更改final
变量。
答案 2 :(得分:1)
final
是声明变量是常量的声明。
您必须删除final
并设置public
或private
。默认情况下,如果您没有设置任何内容,则为private
。此外,您必须将其声明为类的成员。
默认情况下,eclipse建议您将变量声明为final
,但很多时候都是错误的。
答案 3 :(得分:0)
final int clicks = 0
无法更改最终变量值,因此请将变量设为public
或private
它取决于你的需要
private int clicks =0