【问题标题】:Scaling JPanels with Miglayout使用 Miglayout 缩放 JPanel
【发布时间】:2020-08-13 20:10:55
【问题描述】:

我有一个大型 JPanel,可以将 0-4 个 JPanel 作为行添加到其中。
我的目标是将添加的面板缩放到要添加到的大面板的大小(取决于存在的面板数量)
1 个面板 = 100% 的面板
2 个面板 = 每个面板的 50%
3 个小组 = 每个小组的 33%
我的 jank 解决方案是将大面板分成 12 组行/单元格(可被 3 和 4 整除)

setLayout(new MigLayout("","[100%]","[8.3%][8.3%][8.3%][8.3%][8.3%][8.3%][8.3%][8.3%][8.3%][8.3%][8.3%][8.3%]")); 

然后根据添加的面板数量来缩放它们的跨度

if(count == 1){
 add(panel1, "cell 0 0, span 1 12, grow");
}
else if (count == 2){
add(panel1, "cell 0 0, span 1 6, grow");
add(panel2, "cell 0 6, span 1 6, grow");
...
...

这行得通...但是超级丑陋,我相信一定有更简单的方法。

【问题讨论】:

  • 使用带有GridLayout 的面板。这正是它的工作原理,您不需要任何花哨的约束。
  • @camickr 我打开了 GridLayout,但不知道如何实现。

标签: java swing layout-manager miglayout


【解决方案1】:

我打开了GridLayout,但不知道如何实现。

当您甚至不知道如何使用 JDK 中提供的基本布局管理器时,为什么还要使用 MigLayout?

没有诀窍。您创建一个面板,设置布局并将组件添加到面板。

JPanel parent = new JPanel( new GridLayout(0, 1) );
parent.add(child1);
parent.add(child2);
,,,

阅读Layout Managers 上的 Swing 教程,了解所有标准布局管理器的基础知识。

【讨论】:

    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 2016-02-28
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多