我正在使用MiGLayout创建几个不同的JPanel,但是我在调整其中一个时遇到了问题。下面的图表显示了我想要实现的目标:
-------------------------------------------------------
| |
| Panel 1 |
| |
-------------------------------------------------------
--------------------------- ---------------------------
| | | |
| Panel 2 | | Panel 3 |
| | | |
--------------------------- ---------------------------
我想要实现的关键是让Panel 1分布在另外两个面板上。我似乎已经实现了这种布局,但是我遇到了一个问题,就是我的图表中没有显示Panel 1的边框。我尝试过使用setSize
方法,但似乎没有用。
以下是我用来创建面板的代码(请注意我没有在面板中包含小部件):
// Create Panel 1
JPanel panelOne = new JPanel();
panelone.setSize(600, 50);
panelOne.setBorder(BorderFactory.createTitledBorder("Panel 1"));
panelOne.setLayout(new MigLayout());
// Create Panel 2
JPanel panelTwo = new JPanel();
panelTwo.setBorder(BorderFactory.createTitledBorder("Panel 2"));
panelTwo.setLayout(new MigLayout());
// Create Panel 3
JPanel panelThree = new JPanel();
panelThree.setBorder(BorderFactory.createTitledBorder("Panel 3"));
panelThree.setLayout(new MigLayout());
// Add the panels to the main frame
mainFrame.add(panelOne, "span, wrap, align center");
mainFrame.add.add(panelTwo);
mainFrame.add.add(panelThree);
请有人建议一种方法让边框显示在我的图表中吗?
答案 0 :(得分:4)
试试这个:
mainFrame.getContentPane().setLayout(new MigLayout());
getContentPane().add(panelTwo);
getContentPane().add(panelThree, "wrap"); // Wrap to next row
getContentPane().add(panelOne, "dock north");
另外,请确保将GUI元素添加到主框架的内容窗格而不是框架本身。
编辑从以下评论中:
您还可以使用new CC.wrap()
或new CC.dockNorth()
感谢@Andrew Thompson和@Howard提示:)
答案 1 :(得分:4)
panelone.setSize(600, 50); // from original code
我从未使用过这种布局,但一般来说布局更可能尊重(强制执行)首选尺寸而不是尺寸。