gpt4 book ai didi

java - 如果文件丢失,则在开始时显示弹出窗口

转载 作者:行者123 更新时间:2023-12-01 13:11:37 26 4
gpt4 key购买 nike

我正在创建一个小型 GUI java 应用程序,它将在文件中存储一些用户凭据。

如果文件丢失或属性错误,那么我希望弹出一个弹出窗口,通知用户注册其凭据(以便可以使用正确的凭据创建一个新文件)。

我已经确定了文件不正确和/或丢失的逻辑,但我无法弄清楚(由于我对 JFrame 缺乏经验)代码中到底在哪里检查用户是否需要输入他的文件凭据,以便可以提示他。

假设函数 showWarning() 是在需要时检查并显示弹出窗口的函数,这是我的 main JFrame 函数(这是从 Netbeans 生成的)大多数):

public static void main(String args[]) {

/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
}
});
}

我是否将 showWarning() 函数放在 main 函数中?如果是,我是否将其放在 new GUI().setVisible(true); 之后?这样做的正确方法是什么?

编辑:我遇到了之前遇到的同样的问题。这是我出于测试目的而快速起草的 showWarning():

public void showWarning(){
File propertiesFile = new File("config.properties");
if (propertiesFile.exists() && propertiesExist(propertiesFile)) {
JOptionPane.showMessageDialog(rootPane, "Creds are ok");
} else {
JOptionPane.showMessageDialog(rootPane, "Creds are not ok");
}
}

我遇到的问题是,我无法将此方法设为静态,以便在没有对象的情况下使用它,因为 rootPane 是一个非静态对象。这导致的问题是我不能只写:

public static void main(String args[]) {

/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
showWarning();
}
});
}

我不能像这样使用 showWarning() 因为它是一个非静态方法。

我是否需要在变量中正确包含 GUI 对象,或者是否有办法使 showWarning() 成为静态方法?

最佳答案

如果您希望在程序启动时立即运行检查,则需要在主 JFrame gui 设置可见之后放置函数调用。请参阅下面编辑的代码。当然,我在这里使用了不明确的 showWarning() 函数,但是您应该根据您的需要调整该行代码。如果调用函数,则右键该函数,但如果想调用新的弹出 jframe,则需要在那里执行更多代码行。

public static void main(String args[]) {

/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new GUI().setVisible(true);
LoginForm login = new LoginForm();
login.setVisible(true);
}
});
}

现在您需要相应地更改变量。 LoginForm 是一个已经创建的 Jframe。

关于java - 如果文件丢失,则在开始时显示弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22815897/

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