Java 如何在Swing中设置默认打开窗口?

Java 如何在Swing中设置默认打开窗口?,java,swing,jframe,Java,Swing,Jframe,我有一个应用程序,它有两个不同的登录窗口供两种不同类型的应用程序用户使用,比如一个是客户端,另一个是管理员,现在我想在登录窗口上都有一个选项来设置默认的打开窗口,类似于设置了标签的复选框,这是默认的登录窗口 我怎样才能做到这一点 我可以使用.properties文件设置默认窗口吗?(怎么做?) 或者,一个Main.java类,它首先加载并决定首先加载的默认GUI窗口 我更喜欢第二种方式……但欢迎您的意见,也请提供一些示例代码来完成此任务。在两个登录窗口上添加JCheckbox。当用户成功登录时,

我有一个应用程序,它有两个不同的登录窗口供两种不同类型的应用程序用户使用,比如一个是客户端,另一个是管理员,现在我想在
登录
窗口上都有一个选项来设置默认的打开窗口,类似于设置了标签的
复选框
,这是默认的登录窗口

我怎样才能做到这一点

我可以使用
.properties
文件设置默认窗口吗?(怎么做?)

或者,一个
Main.java
类,它首先加载并决定首先加载的默认GUI窗口


我更喜欢第二种方式……但欢迎您的意见,也请提供一些示例代码来完成此任务。

在两个登录窗口上添加JCheckbox。当用户成功登录时,查找复选框的值,使用以下命令设置首选项:

private static enum LoginWindow {
    CLIENT, ADMIN;
}
...
Preferences prefs = Preferences.userNodeForPackage(this);
if (client.getSetAsDefaultCheckbox().getValue())
    prefs.put("PREF_WIND",LoginWindow.CLIENT.name());
else if (admin.getSetAsDefaultCheckbox().getValue())
    prefs.put("PREF_WIND",LoginWindow.ADMIN.name());
加载应用程序时:

Preferences prefs = Preferences.userNodeForPackage(this);
String prefWindow = prefs.get("PREF_WIND",null);
if (prefWindow!=null) {
    LoginWindow loginWindow = LoginWindow.valueOf(prefWindow);
    switch(loginWindow) {
    case ADMIN:
         // switch to admin
         break;
    case CLIENT:
         // switch to client
         break;
    }
} else
    // Default

在两个登录窗口上添加JCheckbox。当用户成功登录时,查找复选框的值,使用以下命令设置首选项:

private static enum LoginWindow {
    CLIENT, ADMIN;
}
...
Preferences prefs = Preferences.userNodeForPackage(this);
if (client.getSetAsDefaultCheckbox().getValue())
    prefs.put("PREF_WIND",LoginWindow.CLIENT.name());
else if (admin.getSetAsDefaultCheckbox().getValue())
    prefs.put("PREF_WIND",LoginWindow.ADMIN.name());
加载应用程序时:

Preferences prefs = Preferences.userNodeForPackage(this);
String prefWindow = prefs.get("PREF_WIND",null);
if (prefWindow!=null) {
    LoginWindow loginWindow = LoginWindow.valueOf(prefWindow);
    switch(loginWindow) {
    case ADMIN:
         // switch to admin
         break;
    case CLIENT:
         // switch to client
         break;
    }
} else
    // Default

伟大的听起来不错……如果有什么好的或坏的事情发生,我会设法回来的……)类java.util.prefs.Preferences中的方法userNodeForPackage不能应用于给定类型;必需:找到java.lang.Class:com.tcs.booth.gui.frames.Main原因:无法通过方法调用转换将实际参数com.tcs.booth.gui.frames.Main转换为java.lang.Class。我使用
Preferences prefs=Preferences.userNodeForPackage(此)收到此错误行编译。。我在
Main.java
class.Ok中的方法中编写代码。问题已解决,使用
getClass()
代替
,现在代码正常工作,谢谢…接受ans…)伟大的听起来不错……如果有什么好的或坏的事情发生,我会设法回来的……)类java.util.prefs.Preferences中的方法userNodeForPackage不能应用于给定类型;必需:找到java.lang.Class:com.tcs.booth.gui.frames.Main原因:无法通过方法调用转换将实际参数com.tcs.booth.gui.frames.Main转换为java.lang.Class。我使用
Preferences prefs=Preferences.userNodeForPackage(此)收到此错误行编译。。我在
Main.java
class.Ok中的方法中编写代码。问题已解决,使用
getClass()
代替
,现在代码正常工作,谢谢…接受ans…)