gpt4 book ai didi

java - GUI 窗口排序和消除显示问题

转载 作者:行者123 更新时间:2023-12-02 08:21:28 24 4
gpt4 key购买 nike

我在同步 GUI 的显示方式时遇到问题...

目前我的主要程序如下

public class MainGUI extends JPanel{

private static final long serialVersionUID = 1L;

public static void main(String[] args) throws Exception {
EventQueue.invokeLater(new Runnable() {

public void run() {
JFrame f = new JFrame("Firstscreen_Main");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Firstscreen_Main gp = new Firstscreen_Main();
// rest code
f.setVisible(true);
}
});
}
}

其中 Firstscreen_Main 是一个类似于

的类
public class Firstscreen_Main extends JPanel implements ActionListener, ChangeListener       
{
// code
}

在此之后,我在上面的类中有一个带有监听器的按钮,该监听器为用户输入提供了一个对话框......

为此,我在监听器处理中添加了 Firstscreen_Main 代码

this.removeAll();
SecondScreen second = new SecondScreen();

这不会删除第一个屏幕的内容......

这可能是因为对话框应该显示它源自(不确定?)的上一个屏幕

但是我怎样才能完全销毁第一个窗口并使用存储的数据启动下一个窗口?

我想我不理解 Windows 的工作方式...任何人都可以解释一下...

我已经了解了 CardLayout,但是有什么简单的方法可以让我从第一个屏幕中删除所有内容并创建一个新屏幕吗?

最佳答案

  1. 您需要在框架上而不是在面板上调用 dispose。
  2. 您的 MainGUI 类不应该是 JPanel,但仍要创建和控制应用程序中的框架。
  3. 您的类不应按照其出现的顺序命名。如果您决定更改顺序,但又不想更改名称,该怎么办?另外,类名中不应包含下划线。
  4. 看起来您的类有很多职责。尝试将你的类(class)分成更有意义的部分。同时尽量减少类之间的耦合。

总的来说,我认为移动对所显示屏幕的控制需要移动到一个单独的类,而不是让每个 JPanel 打开和关闭框架。

关于java - GUI 窗口排序和消除显示问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5380816/

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