Java 错误:从内部类引用的局部变量必须是final或有效final
我在荡秋千。这是我用来创建注销框架的代码,该框架将返回一个int值,使用该值可以在前面的函数中执行其他操作。但是我犯了一个错误。我该如何解决它Java 错误:从内部类引用的局部变量必须是final或有效final,java,swing,Java,Swing,我在荡秋千。这是我用来创建注销框架的代码,该框架将返回一个int值,使用该值可以在前面的函数中执行其他操作。但是我犯了一个错误。我该如何解决它 public int logout() { int s=0; JFrame main=new JFrame("Logout"); Dimension d=Toolkit.getDefaultToolkit().getScreenSize(); main.setSize(d.width/2,d.height/3); main.setLa
public int logout()
{
int s=0;
JFrame main=new JFrame("Logout");
Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
main.setSize(d.width/2,d.height/3);
main.setLayout(new FlowLayout());
JButton yes=new JButton("Yes");
main.add(yes); main.setVisible(true);
yes.addActionListener(new ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
s=1;
main.setVisible(false);
}
});
return s;
}
你希望你的程序做什么 您编写的代码尝试执行以下操作:
- 创建一个带有“是”按钮的“注销”框架
- 使用
变量的值从logout()方法返回s
- 当以后用户按下“是”按钮时,您准备了一个操作侦听器来,然后将
变量设置为s
——但这不起作用,因为您已经从1
方法返回,并且变量注销()
甚至不再存在s
JOptionPane
方法(Java教程将帮助您正确地执行此操作)
顺便说一下:养成正确格式化和缩进代码的习惯。阅读代码并不有趣。使用类创建确认对话框,方法是使用showConfirmDialog()
方法之一来显示确认对话框。请阅读Java教程,了解如何创建这样的对话框。源代码应该如下所示:
int choice = JOptionPane.showConfirmDialog(your_main_frame,
"Do you want to logout?",
"Logout?",
JOptionPane.YES_NO_OPTION);
if (choice == JOptionPane.YES_OPTION) {
// "Yes" clicked
} else {
// "No" clicked
}
如果你问我的话,错误信息是非常清楚的。如果你想在一个内部类中引用一个变量,它必须是最终的。让它更漂亮的提示:如果你使用像Eclipse这样的IDE(希望你这样做,它会让你的生活更简单),有一些一键式函数可以“美化”你的代码:源代码/正确的缩进和源代码/格式。“我不使用Eclipse”您使用什么软件编写/编辑Java代码?