我想我已经把自己编成了一个角落。我正在尝试使用java swing做这个效果。
单击下一步按钮,从文件中加载一个新行(通过行索引号),如果文件中的行中的日期尚未到达,则使下一个按钮变灰。我的问题是,当我有以下代码时:
Scanner input = new Scanner(System.in);
System.out.println("Enter week number");
int j = input.nextInt();
String[] strArray = new String[4];
xmlLoader(j, strArray);
JButton nextButton = new JButton("Next");
nextButton.setBounds(750, 250, 80, 30);
nextButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
j++;
doNext(j, nextButton);
}
});
我无法通过j,因为它不是最终的,如果它是最终的,我无法更改按钮上的任何内容,helpppp!
特定错误:从内部类中访问局部变量j;需要被宣布为最终
答案 0 :(得分:7)
您可以将j
定义为外部类中的字段。
class Sample{
private int j;
void method() {
...
nextButton.setBounds(750, 250, 80, 30);
nextButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae){
j++;
doNext(j, nextButton);
}
});
}
}
答案 1 :(得分:3)
创建j类字段而不是声明局部变量。
答案 2 :(得分:2)
将j变量声明为:final Integer j = new Integer(0)。 您将能够更改Integer类包装的值。