【问题标题】:Assigning a JFrame to another JFrame将一个 JFrame 分配给另一个 JFrame
【发布时间】:2011-04-25 15:45:47
【问题描述】:

我正在尝试使当前的 JFrame 成为存储在内存中的 JFrame。目前我正在正确地从内存中读取 JFrame,我可以让它显示,但是所有的动作监听器都没有工作。

        gui.dispose();
        gui = savedGUI;
        gui.setVisible(true);

这似乎没有正确地将当前 GUI (gui) 设置为保存的版本 (savedGUI)。我应该在 gui 而不是 setVisible 上调用其他方法吗?

提前致谢!

【问题讨论】:

  • 你为什么要这样做?总体目的是什么,因为我猜有更好的方法来做你想做的事情,比如保存 GUI 的模型部分而不是视图。
  • 我要做的就是从内存中加载一个 GUI,就像它被保存时一样。
  • 您最好保存应用程序模型的状态,然后根据此状态重新创建 GUI。
  • 我同意你可能是对的,但我想知道它们是否是一种重建存储的 JFrame 对象的方法?

标签: java swing user-interface jframe variable-assignment


【解决方案1】:

当我确定所有的 ActionListener 都实现了 Serializable 时,问题就解决了。

【讨论】:

  • 为什么要将 JFrame 序列化到内存中?
【解决方案2】:

我也不太明白你在做什么。为什么您认为需要使用单个引用变量来引用 GUI?

只要做:

savedGui.setVisible( false );

我们想再次显示 GUI:

savedGui.setVisible( true );

【讨论】:

  • 将 savedGUI 设置为可见会显示 GUI,但已删除所有动作侦听器,这对我的程序至关重要。这个人似乎有同样的问题compgroups.net/comp.lang.java.gui/…
  • 让 Gui 不可见时不会失去听众。
猜你喜欢
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
相关资源
最近更新 更多