java - 将包含 Swing Panel 从一个 Container 移动到另一个 Container 后,OfficeBean 不会显示

标签 java swing applet openoffice.org

我正在开发一个 Java 6 小程序,它允许用户查看 OO (v.3.2) 文档(只读),如果他们选择,单击一个按钮启动一个新的 JDialog 窗口,其中显示文档允许用户根据需要标记和编辑它。完成后,他们可以关闭 JDialog,它将文档保存到服务器并在原始小程序窗口中重新显示更新后的文档(再次为只读)

我猜想我可以使用嵌入在 Swing 面板中的 OfficeBean 的单个实例来完成此操作。但是,当单击“编辑”按钮时,我似乎无法成功地将我的面板(包含 OfficeBean)从小程序移动到 JDialog。我得到的只是 JDialog 中应该放置文档的空白区域。我没有收到任何错误。

我目前设法通过在每次需要显示文档时创建新的 OfficeBean 实例来解决这个问题(一次是在加载小程序时,一次是在用户选择编辑并在 JDialog 中打开时,以及最后,当他们在对话框中单击“保存”并且编辑后的结果再次显示在小程序中时。)然而,这意味着往返于文档来源服务器的三次往返。这对我来说似乎很疯狂。

我绝不是 Swing 专家,很可能会犯一个愚蠢的错误。然而,我已经做了很多摆弄、调试和谷歌搜索,但似乎无法让它工作。任何人都可以帮助我吗?我是否正在尝试做一些根本不可能的事情?我希望不会。

最佳答案

Swing 中的一个规则是组件一次只能显示/附加到 gui“树”的一部分。当您将组件“移动”到对话框时,您是否首先将其从小程序中删除?

关于java - 将包含 Swing Panel 从一个 Container 移动到另一个 Container 后,OfficeBean 不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3100571/

相关文章:

java - 如何在 Jess 中制作一个 java gui 作为小程序?

java - Applet 弹出窗口在对话框外有一个悬停的警告图标

java - 表中的 LibGDX 按钮超出屏幕

java - Windows 上的 Sqlite db - 小型 java 应用程序

java - 为什么会发生这个 R 故障(Eclipse Android Java)?

java - 如何将组件移动到 FlowLayout 中的下一行?

java - 在 Java 中运行两次 GUI 应用程序

java - 如何让圆圈响应计时器?

java - 在\\G 和 ^ 之间的正则表达式差异

当 swing 应用程序作为 APPLET 运行时,Java 组件是不可见的