当我输入下面的代码时,我得到错误:"本地变量classWindow是从内部类中访问的;需要被宣布为最终版。"
classWindow.dispose();
我确实放了:
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);
}
是的,我确实查了一下,这就是为什么我尝试了最后一次'事情并没有因为一些奇怪的原因而对我的代码起作用。我确定这是一个非常简单的修复方法。
答案 0 :(得分:3)
最终的原因是混淆命名变量和方法的方式。错误是指变量,需要是最终的:
final JFrame classWindow = new JFrame("Pick A Class");
我会认真地建议为它选择一个不同的名称。