Java Swing从按钮访问类变量

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); } });

因此,在我的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);
    }
});

但是我得到了一个变量超出范围的错误。如何访问它?

操作侦听器是一个匿名内部类。这意味着它只能使用外部范围中的最终变量。因此,要么将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,才能在类内部使用。