如何在不嵌套多个面板的情况下使用MigLayout创建模块化UI?

时间:2014-04-12 15:03:36

标签: java swing javafx swt miglayout

MigLayout是Swing,SWT和JavaFX的高度通用的布局管理器。 根据文档,应该可以(仅)使用该布局管理器的单个实例(重新)创建任何给定的布局。

但是,我永远无法弄清楚如何创建一个模块化应用程序,并使用该单个实例对布局进行分散控制: 我有一个父面板,用于控制子模块贡献的各个组件的位置。 针对解耦和独立子模块,这些组件可以自由选择是使用MigLayout还是使用任何给定的布局管理器进行布局。因此,他们分发了Node(或JComponent)的实例,最后我得到了嵌套的布局管理器。

是否有任何紧急/良好/最佳实践来实现解耦架构和遵守MigLayout的单实例范式?

1 个答案:

答案 0 :(得分:0)

我明白你想做什么,并尝试过类似的方法。我发现没有通用的解决方案要么嵌套布局,要么在单元格范围的使用模块之间达成某种协议(这是我通常在生成搜索屏幕时最终得到的结果)。

我最后得出一个结论;拥有完全独立的模块将东西放在屏幕上工作得很好,如果你可以在布局风格中做出高度分离,那么它也可能对用户有效。但我发现生成的屏幕通常不是非常用户友好,特别是如果有多层结构。所以我停止尝试动态构建屏幕,只是构建一个屏幕以匹配手头的任务;有最终用户屏幕,一些自定义控件,可能还有偶尔的任务特定面板(/ pane)。