Java 如何在Swing中处理已登录的用户
我有一个登录对话框,当有人打开程序时,它是可见的,它有登录名/密码,如果您的登录是正确的,JFrame将是可见的,对话框隐藏/释放 现在在我的例子中,我使用一种方法将用户发送到JFrame 罗金迪亚洛:Java 如何在Swing中处理已登录的用户,java,swing,code-injection,Java,Swing,Code Injection,我有一个登录对话框,当有人打开程序时,它是可见的,它有登录名/密码,如果您的登录是正确的,JFrame将是可见的,对话框隐藏/释放 现在在我的例子中,我使用一种方法将用户发送到JFrame 罗金迪亚洛: if(loginTrue) { MainFrame mf = new MainFrame(); mf.setLoggedUser(User); mf.setVisible(true); } 及 大型机: public void setLoggedUser(User user) {
if(loginTrue) {
MainFrame mf = new MainFrame();
mf.setLoggedUser(User);
mf.setVisible(true);
}
及
大型机:
public void setLoggedUser(User user) {
this.user = user;
}
好的,没关系
但是在我愚蠢的想法中,MVC做了很多.class,这些.class将代表CardLayout的不同JPanel,当程序加载时,它将在CardLayout内部构造所有PanelClass1到10
因此,我必须为所有类添加setLoggedUser(User)
并且做:
panel1.setLoggedUser
panel2.setLoggedUser
panel3.setLoggedUser
panel4.setLoggedUser
panel5.setLoggedUser
panel6.setLoggedUser
...
是否有方法更改和删除所有这些代码,并使用类似于@Inject的东西?如果只有一个登录用户,您可以在一个地方声明变量user,例如,像类MainFrame中的静态变量一样。或者,如果可以有更多的登录用户,您可以定义一组大型机以获得更好的界面。如果您想要更好的体系结构,请查看Java身份验证和授权服务(JAAS): 如果您不编写生产应用程序,这可能会有点过分,但如果它将被发布到生产环境中,我会使用类似的方法