java - 如何在mig布局中进行组件定位
问题描述
红色方块中的坏部分:
问题是我怎样才能使每个面板都具有相同的尺寸,只有 B3 和 B4 需要是其他面板的一半。有人能帮我吗?如果我设置尺寸
如果我强制窗格大小会发生这种情况,我将在 B4 旁边有这个间隙:
for(int i = 0; i < 60; i++) { //this is the for cycle
if (i == 0){
panel.add(pane,"wrap,cell 0 0 14 0,right"); // creating the first //panel the time panel in the right corner
}
if (i == 58){
panel.add(pane,"cell 0 9 1 0,left");
}
if (i == 59){
panel.add(pane,"cell 1 9 14 1,left,span");
}
if (i>0 & i<3){
panel.add(pane, " push,grow");
pane.setBackground(Color.yellow);
pane.add(button, "span,push, grow");
}
if (i==3){
panel.add(pane, " push,grow");
pane.setBackground(Color.yellow);
pane.add(button, "span ,push, grow");
}
if (i>3 & i<7){
panel.add(pane, " push,grow");
pane.setBackground(Color.yellow);
pane.add(button, "span,push, grow");
}
if (i==7){
panel.add(pane,"wrap 3, push, grow");
pane.setBackground(Color.yellow);
pane.add(button, "span ,push, grow");
}
if (i>7 & i<10){
panel.add(pane, "push , grow");
pane.setBackground(Color.yellow);
pane.add(button, "span,push, grow");
}
if (i==10){
panel.add(pane, "push , grow,split 2, w 0, h 0, , " ); // split it to two this is what dosn't works
pane.setBackground(Color.yellow);
pane.add(button, "span,push, grow");
}
if (i==11){
panel.add(pane, "push ,grow,");
pane.setBackground(Color.yellow);
pane.add(button, "span,push, grow");
}
if (i>11 & i<15){
panel.add(pane, "push , grow");
pane.setBackground(Color.yellow);
pane.add(button, "span,push, grow");
}
if (i==15){
panel.add(pane,"wrap 3, push, grow");
pane.setBackground(Color.yellow);
pane.add(button, "span,push, grow");
}
if (i>15 & i<22){
panel.add(pane, "push , grow");
pane.setBackground(Color.yellow);
pane.add(button, "span ,push, grow");
}
if (i==22){
panel.add(pane,"wrap 3, push, grow");
pane.setBackground(Color.yellow);
pane.add(button, "span ,push, grow");
}
if (i>22 & i<29){
panel.add(pane, "push , grow");
pane.setBackground(Color.yellow);
pane.add(button, "span ,wrap 3,push, grow");
}
其中 i=10 和 i=11 是 B3 B4 面板,我尝试使用拆分功能但不起作用。
解决方案
split [count] 将单元格拆分为多个子单元格。实际上,这意味着下一个计数组件将被放置在同一个单元格中,彼此相邻而没有间隙。只有单元格中的第一个组件可以设置拆分,单元格中的任何后续拆分关键字都将被忽略。 "split"、"wrap" 或 "newline"将脱离拆分单元格。后两者将照常移动到新的行/列。
所以删除额外的参数,这会破坏正确的拆分功能。
拆分单元格同样简单直观。
panel.add(comp1);
panel.add(comp2, "split 2"); // Split the cell in two
panel.add(comp3); // Will be in same cell as previous
panel.add(comp4, "wrap"); // Wrap to next row
panel.add(comp5);
在视觉上它看起来像这样:
推荐阅读
- firebase - 如何使用 getHttpsCallable 方法检索数据
- java - jna 平台中的 NoSuchMethodError
- java - 如何从事件侦听器的语句中调用函数?
- r - 从列名称作为变量的数据框列中修剪前导/尾随空格
- android - 如何在android的设置中检查volte是否被硬禁用?
- java - SWT Widgets 绑定问题
- powershell - 在 [Selected.System.Management.Automation.PSCustomObject] 中找不到方法“拆分”
- c# - 在 asp.net core 的 dbcontext 中播种用户和角色:循环依赖问题
- c++-winrt - Storyboard_Completed 事件产生链接器工具错误 LNK2019 错误
- css - 如何直接扩展 SCSS 父选择器?