【问题标题】:MDI with JavaFX or Swing带有 JavaFX 或 Swing 的 MDI
【发布时间】:2012-11-04 19:21:12
【问题描述】:

在我,咳咳,Visual Basic 编程时代,我记得创建一个多表单程序非常容易。

在 gui 设计器中,我可以简单地创建任意数量的表单,然后在需要的地方将它们加载到我的程序中。

我在 Java 中很难做到这一点。

我开始使用 Java FX Scene Builder,但很快发现似乎没有很好的 MDI 支持。所以,回到 Swing。但是,再一次,我没有看到设计多表单应用程序的简单方法。

我在某处读到JDesktopPane 是可行的方法,因为它允许您拥有不同的内部框架,但我可以看到,在 NetBeans gui 设计器中设计多个框架是没有办法的。

您会认为您可以在设计器中隐藏一个内部框架,以便您可以布置另一个框架。虽然我可以向我的JDesktopPane 添加多个框架,但它们都相互重叠,因此无法设计多个框架。

是否有可用的工具来完成我正在尝试做的事情,还是我只需要在没有设计师帮助的情况下硬着头皮编写 gui 代码?

简而言之,我只是想创建一个在主屏幕上显示三个或四个选项的简单应用程序

  1. 输入新客户
  2. 搜索现有客户
  3. 快速估算

根据用户的选择,打开相应的表单。这似乎是几乎所有程序的基本要求,我不明白为什么在开发设计/开发工具时似乎从未考虑过实际创建具有多个窗口/窗体的应用程序。想法?建议?

【问题讨论】:

    标签: java swing user-interface javafx mdi


    【解决方案1】:

    如果您真的热衷于使用JDesktopPane 的多文档界面 (MDI),请以自己的类表单创建每个表单。不要将它们拖到桌面上。这将允许您隔离它们。

    (你可以双击一个内部框架,它应该进入“隔离”模式,基本上使它成为你唯一能看到的东西)

    但是,除非窗口共享信息(即您希望在一个窗口中查看信息以更改另一个窗口中的信息),否则我会避免这样做。

    更好的解决方案可能是使用CardLayout,它允许您根据需要在每个表单之间切换。

    同样,我会先从 JPanel 之类的东西单独构建您的表单,当您准备好后,将它们添加到您的主表单中。

    我总是鼓励刚开始使用 Swing 的人手动编写表单代码,这将使您对如何设计表单以及布局管理器的强大功能有很大的了解。

    【讨论】:

    • 啊,双击框架以隔离它正是我想要的。极好的!不敢相信事情就这么简单。由于我对学习使用正确的编程约定以“正确”方式进行编程非常感兴趣,因此请分享您对为什么不建议使用该方法的见解?
    • MDI 方法已经贬值了 10 多年(作为一种设计方法 - 不是在 Java 中)。就个人而言,我发现JDesktopPane 受到限制(不支持滚动开始),现在大多数人都有多个显示器,将用户限制在一个独立的环境中非常令人沮丧(我使用 MDI 应用程序我们的客户对此抱怨无休止)。此外,窗口管理可能很困难,并非不可能,但要准备好编写大量代码。还有一个决定是用不相关的信息让你的客户超负荷
    • 感谢您的回复和花时间跟进。非常感谢。
    猜你喜欢
    • 2017-11-10
    • 2014-06-03
    • 2013-05-06
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多