【发布时间】:2018-04-07 23:19:04
【问题描述】:
我刚开始使用 java,我正在开发一个新的 GUI。我做了一个方法来制作我的 JFrame,设置它的默认位置、关闭操作、背景颜色等。
为了整洁起见,我为此创建了一个单独的方法以将其排除在主代码之外。如果我把所有这些东西都放在 main 方法中,我已经知道如何解决这个方法了。
这是代码:
public class Main {
public static void makeWindow(){
JFrame mainWindow = new JFrame();
mainWindow.setVisible(true);
mainWindow.setPreferredSize(new Dimension(400,400));
mainWindow.pack();
mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainWindow.setLocationRelativeTo(null);
}
public static void main(String args[]){
makeWindow();
JPanel mainPanel = new JPanel();
mainWindow.add(mainPanel);
}
}
我的 main 方法中出现错误,提示“mainWindow”无法解析。为什么是这样?是因为我在其他方法中创建了 mainWindow 对象吗?有没有办法在不将 makeWindow() 方法中的所有内容都放入 main 方法的情况下解决此问题?
【问题讨论】:
-
mainWindow 是方法 makeWindow() 的本地窗口。一切都与范围有关。
-
这是范围的外部指南:geeksforgeeks.org/variable-scope-in-java
-
我注意到 mainWindow 是本地的,但 mainWindow 是一个对象,我怎样才能创建一个实例对象?我已经知道我可以在它们各自的方法之外声明实例变量,但是我怎样才能对一个对象做同样的事情呢?
标签: java object methods public resolve