在构造函数中创建非私有对象

时间:2018-05-25 12:27:28

标签: java swing variables methods scope

我在java中使用 swing 创建了一个表单,我有一个Game类,如下所示:

public class Game extends JFrame {
     public Game() {
          JPanel contentPane = new JPanel();
          JDesktopPane desktopPane = new JDesktopPane();
          JButton btnExit = new JButton("Exit");
    }
}

现在我想在构造函数中创建退出事件,如下所示:

 btnExit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            System.exit(0);
        }
    });

但我想创建一个这样的方法:

btnExit.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            exitmethod();
        }
    });

退出方式

private void exitmethod() {
     if (btnExit.getText().equals("1")){
         system.exit(0);
     }

}

但我无法访问btnExit 中的exitmethod

我试图把btnExit放在构造函数之外,但是这种方式.app无法正常工作。

1 个答案:

答案 0 :(得分:1)

您应该让btnExit成为Game班级范围的一部分。像

这样的东西
public class Game extends JFrame {
    private JButton btnExit;
    public Game() {
        JPanel contentPane = new JPanel();
        JDesktopPane desktopPane = new JDesktopPane();
        this.btnExit = new JButton("Exit");
    }
}
相关问题