Java Swing从按钮访问类变量
因此,在我的Java Swing应用程序中,我需要一个按钮ActionListener来访问其范围之外的变量,如下所示:Java Swing从按钮访问类变量,java,swing,Java,Swing,因此,在我的Java Swing应用程序中,我需要一个按钮ActionListener来访问其范围之外的变量,如下所示: int x = 13; JButton btn = new JButton("New Button"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println(x); } });
int x = 13;
JButton btn = new JButton("New Button");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(x);
}
});
但是我得到了一个变量超出范围的错误。如何访问它?操作侦听器是一个匿名内部类。这意味着它只能使用外部范围中的最终变量。因此,要么将x声明为final,要么以其他方式将其传递到类中 这应该起作用:
final int x = 13;
JButton btn = new JButton("New Button");
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(x);
}
});
或者,有关其他选项,请参阅。错误是什么?请先阅读此内容,然后编辑您的问题。您在哪里声明了
int x
?因此,如果我想让按钮从文本框中提取文本并打印出来,我可以生成最后一个JTextField,并对其调用getText()吗?是的,应该可以。在内部类外部声明的所有变量必须是final,才能在类内部使用。