Java 当我更改屏幕时如何处理

Java 当我更改屏幕时如何处理,java,swing,Java,Swing,我尝试构建2个类:LoginScreen类和MainScreen类 当我运行程序时,它会首先显示登录屏幕,然后我使用用户名和密码登录。主屏幕会弹出,但登录屏幕不会消失。我不知道如何正确处理它 因为我使用的方法是 已执行的公共无效操作(操作事件e){ 字符串cmd=e.getActionCommand() } 我知道这是一个愚蠢的代码,也是实现它的错误方法,但是你能指导我做一个合适的吗。我想这个方法是你第一个屏幕的方法,它必须是JDialog或JFrame。只需调用setVisible(false

我尝试构建2个类:LoginScreen类和MainScreen类

当我运行程序时,它会首先显示登录屏幕,然后我使用用户名和密码登录。主屏幕会弹出,但登录屏幕不会消失。我不知道如何正确处理它

因为我使用的方法是

已执行的公共无效操作(操作事件e){ 字符串cmd=e.getActionCommand()

}


我知道这是一个愚蠢的代码,也是实现它的错误方法,但是你能指导我做一个合适的吗。

我想这个方法是你第一个屏幕的方法,它必须是JDialog或JFrame。只需调用
setVisible(false)
隐藏帧(如果不再使用该对话框,也可以调用
dispose()

另外,您不应该在JFrameExample上调用main方法。主方法通常用于启动新的应用程序。只需从动作侦听器执行main方法所做的操作(可能是
newjframeexample().setVisible(true)

最后,事件侦听器总是在事件分派线程(EDT)中调用,因此从事件侦听器中使用
SwingUtilities.invokeLater
没有意义

总而言之,代码应该是这样的:

if (isPasswordCorrect(input)) {
    setVisible(false); // or dispose();
    JFrame mainFrame = new JFrameExample();
    mainFrame.setVisible(true);
}

非常感谢您,但在我做之前,我必须先做b.getParent().getParent().getParent().getParent().getParent().setVisible(false);这对我来说很有趣:D
if (isPasswordCorrect(input)) {
    setVisible(false); // or dispose();
    JFrame mainFrame = new JFrameExample();
    mainFrame.setVisible(true);
}