gpt4 book ai didi

java - 在 Swing 面板之间传递信息?

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:51 24 4
gpt4 key购买 nike

我正在使用 java 中的 swing 为我的类(class)作业进行测验。我已经制作了我的主类,一个选项卡式框架,其中包含单独的 jpanels 作为选项卡,例如登录页面,并且我使用 sqlite 来获取我的数据。然而,我很难了解如何在我的登录 jpanel 和我的主类之间进行通信。

mainJFrame.addWindowListener(new WindowAdapter() {
public void windowActivated(WindowEvent arg0) {
LoginPanel loginEntry = new LoginPanel();
welcomePanel.add(loginEntry);
welcomePanel.setBounds(0,0,728,390);

//所以这里我想要一个 if 语句,以便在成功登录后,添加其他选项卡并可以看到。但如果您未登录,则无法使用。

                tabbedPane.addTab("Quick Guide", null, quickGuidePanel, null);
tabbedPane.addTab("Examples", null, examplePanel, null);
tabbedPane.addTab("Run Quiz", null, runQuizPanel, null);
tabbedPane.addTab("Exams", null, examPanel, null);
tabbedPane.addTab("View Performance", null, viewPerfPanel, null);
tabbedPane.addTab("Settings", null, settingsPanel, null);

}
});

我尝试创建一个 getter 和 setter 并尝试 getSuccessfulLogin() 但这不起作用:(

谢谢

最佳答案

在应用程序中填充登录信息的好方法是单例模式。例如:

public class AuthService {
private static AuthService myInstance;

private User currentUser;
...

private AuthService() {
// Constructor is private. The Object can only be instanciated by getInstance()
}

public static AuthService getInstance() {
if (myInstance == null) {
myInstance = new AuthService();
}

return myInstance;
}

public User getCurrentUser()
...


public void setLoggedInUser(User user)
...

public User login(String userName, String password)
...

}

通过静态 getInstance() 方法,您可以在应用程序中的任何位置获取完全相同的对象的实例,而无需通过所有构造函数或方法携带该对象。您可以在那里保存所有与身份验证相关的数据,甚至可以保存一些执行登录工作的方法。如果不存在成功登录的用户,则 getCurrentUser() 可能返回 null。

如果可以同时从多个客户端登录,您将需要在 AuthService 中为不同 session 保存不同的用户信息。

关于java - 在 Swing 面板之间传递信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8777502/

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