Java 如何关闭JFrame对话框?

Java 如何关闭JFrame对话框?,java,swing,jframe,Java,Swing,Jframe,当我输入下面的代码时,我得到了一个错误:“局部变量classWindow是从内部类访问的;需要声明为final。” 我确实提出: private final void classWindow 我仍然得到了错误 private final void classWindow() { // Create the frame JFrame classWindow = new JFrame("Pick A Class"); // Set the size of the frame c

当我输入下面的代码时,我得到了一个错误:“局部变量classWindow是从内部类访问的;需要声明为final。”

我确实提出:

private final void classWindow 
我仍然得到了错误

private final void classWindow() {
  // Create the frame
  JFrame classWindow = new JFrame("Pick A Class");

  // Set the size of the frame
  classWindow.setSize(230, 150);

  // Specify an action for the close button.
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  // Add a layout manager to the content pane.
  setLayout(new GridLayout());

  JButton warriorButton = new JButton("Warrior");   

  warriorButton.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent evt) {
        userClass = "Warrior";
        classWindow.dispose();
        }});

  classWindow.add(warriorButton, BorderLayout.WEST);

  classWindow.setLocationRelativeTo(null);
  classWindow.setVisible(true);
}

是的,我确实查过了,这就是为什么我尝试了“最终”的东西,但由于一些奇怪的原因,它似乎无法在我的代码上工作。我相信这是一个非常简单的解决方案。

最终原因是混淆了命名变量和方法的方式。错误是指变量,该变量必须是最终变量:

final JFrame classWindow = new JFrame("Pick A Class");

我郑重建议您也为它选择一个不同的名称。

最终的原因是命名变量和方法的方式比较混乱。错误是指变量,该变量必须是最终变量:

final JFrame classWindow = new JFrame("Pick A Class");

我郑重建议您也为它选择一个不同的名称。

JFrame对话框听起来很奇怪,为什么不使用
JDialog
?:)我衷心支持@backslax的建议——在对话框窗口中使用JDialog,而不是JFrame。JFrame对话框听起来很奇怪,为什么不使用
JDialog
?:)我衷心支持@backslax的建议——在对话框窗口中使用JDialog,而不是JFrame。非常感谢!我真傻!=)@如果kiheru的答案解决了你的问题,那么请点击他答案左边的大复选标记接受他的答案。但我必须再次重申,这里应该使用JDialog,而不是JFrame。@装满鳗鱼的气垫船,对不起,我不得不等15分钟。有点瘸。@Xearta:不,不是瘸子。这将随着你获得代表而改变。非常感谢!我真傻!=)@如果kiheru的答案解决了你的问题,那么请点击他答案左边的大复选标记接受他的答案。但我必须再次重申,这里应该使用JDialog,而不是JFrame。@装满鳗鱼的气垫船,对不起,我不得不等15分钟。有点瘸。@Xearta:不,不是瘸子。这将随着您获得rep而改变。