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…)