【问题标题】:Cannot refer to a variable inside an inner class不能引用内部类中的变量
【发布时间】:2013-05-13 17:57:06
【问题描述】:

我还在学习 java,所以请多多包涵。我正在尝试编写一个程序,您单击一个名为“是”的按钮,它将变量 Y 增加 1,与变量 X 上的按钮“否”相同。我正在使用 eclipse 和 WindowBuilder Pro,它给了我一个错误“不能引用内部类中的变量”

这是我的代码:

    import javax.swing.JApplet;
    import javax.swing.JButton;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.JFormattedTextField;


    public class qa extends JApplet {

        /**
         * Create the applet.
         */
        public qa() {
            getContentPane().setLayout(null);

            int y=0;
            int x=0;
            String s1 = String.valueOf(y);


            JButton btnYes = new JButton("YES");
            btnYes.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent arg0) {
                    ++y;
                }
            });
            btnYes.setBounds(135, 220, 85, 42);
            getContentPane().add(btnYes);

            JButton btnNo = new JButton("NO");
            btnNo.addMouseListener(new MouseAdapter() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    ++x;
                }
            });
            btnNo.setBounds(230, 220, 85, 42);
            getContentPane().add(btnNo);

            JFormattedTextField frmtdtxtfldVarible = new JFormattedTextField();
            frmtdtxtfldVarible.setText(s1);
            frmtdtxtfldVarible.setBounds(147, 130, 157, 20);
            getContentPane().add(frmtdtxtfldVarible);


        }
    }

感谢您的帮助!

【问题讨论】:

标签: java swing variables jbutton japplet


【解决方案1】:

xy 声明为实例变量,这样您就不需要将它们声明为最终局部变量:

public class qa extends JApplet
{
    private int x = 0;
    private int y = 0;

    // ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 2010-11-20
    • 2014-12-09
    • 1970-01-01
    • 2020-04-07
    • 1970-01-01
    相关资源
    最近更新 更多