我正在创建一个小的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。