gpt4 book ai didi

java - 将静态方法与 JFrame 结合使用

转载 作者:行者123 更新时间:2023-11-30 03:57:19 25 4
gpt4 key购买 nike

我有这个方法,它将在我的程序开始时运行:

public static void checkIntegrity(){
File propertiesFile = new File("config.properties");
if (propertiesFile.exists()) {
JOptionPane.showMessageDialog(rootPane, "File was found");
} else {
JOptionPane.showMessageDialog(rootPane, "File was not found");
}
}

它本质上是检查 config.properties 文件是否丢失,并相应地显示一个弹出窗口。

这是我的main函数:

public static void main(String args[]) {  
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
checkIntegrity();
}
});
}

问题在于 checkIntegrity() 函数使用 rootPane 显示弹出窗口以通知用户。 rootPane 虽然是一个非静态成员,所以不可能在 checkIntegrity() 中使用它。

有没有办法让 checkIntegrity() 显示弹出窗口,同时仍然是静态函数?

最佳答案

是的。有几种不同的方式。首先,您可以使用 null 代替 rootPane:

JOptionPane.showMessageDialog(null, "File was found");

您还可以传递函数 rootPane:

GUI pane = new GUI().setVisible(true);
checkIntegrity(pane);

并相应地改变函数减速度:

public static void checkIntegrity(GUI rootPane){

您最终可以使 rootPane 成为静态变量(这就是我要做的方式):

class theClass{
static GUI rootPane;
public static void main...

对于最后一个,您还必须设置rootPane:

rootPane = new GUI().setVisible(true);

关于java - 将静态方法与 JFrame 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22842999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com