0
A
回答
1
有幾種解決方案成爲可能。我提供了兩個例子。 在這兩個示例中,我們還設置了面板的首選寬度和高度 。通常,小組將從他們的子女中獲得他們的首選 。
第一個佈局是用dock
約束完成的。
package com.zetcode;
import java.awt.EventQueue;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class MigLayoutThreePanels extends JFrame {
public MigLayoutThreePanels() {
initUI();
setTitle("Three panels");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
private void initUI() {
setLayout(new MigLayout());
JPanel pnl1 = new JPanel();
pnl1.setBorder(BorderFactory.createEtchedBorder());
JPanel pnl2 = new JPanel();
pnl2.setBorder(BorderFactory.createEtchedBorder());
JPanel pnl3 = new JPanel();
pnl3.setBorder(BorderFactory.createEtchedBorder());
add(pnl2, "w 40, dock east");
add(pnl1, "h 40, dock north");
add(pnl3, "w 250, h 200, dock center");
pack();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
MigLayoutThreePanels ex = new MigLayoutThreePanels();
ex.setVisible(true);
}
});
}
}
三個面板停靠在東面,北面和中心。間隙約束可以創建 面板之間的額外空間。
在第二個例子中,我們使用利用網格結構。
package com.zetcode;
import java.awt.EventQueue;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import net.miginfocom.swing.MigLayout;
public class MigLayoutThreePanels2 extends JFrame {
public MigLayoutThreePanels2() {
initUI();
setTitle("Three panels");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
private void initUI() {
setLayout(new MigLayout("gap 3 3"));
JPanel pnl1 = new JPanel();
pnl1.setBorder(BorderFactory.createEtchedBorder());
JPanel pnl2 = new JPanel();
pnl2.setBorder(BorderFactory.createEtchedBorder());
JPanel pnl3 = new JPanel();
pnl3.setBorder(BorderFactory.createEtchedBorder());
add(pnl1, "h 40, growx");
add(pnl2, "w 40, spany 2, growy, wrap");
add(pnl3, "w 250, h 200, grow, push");
pack();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
MigLayoutThreePanels2 ex = new MigLayoutThreePanels2();
ex.setVisible(true);
}
});
}
}
在這個例子中,我們還設置了單元格和容器插頁之間的一些間隙。
相關問題
- 1. 砌體將具體佈局
- 2. Miglayout或替代佈局管理器
- 3. ViewFlipper的具體佈局
- 4. Android上的具體可繪製/佈局
- 5. 渲染布局的具體行動
- 6. Windows Phone 7的具體佈局
- 7. 使用miglayout和嵌套面板的Swing佈局
- 8. 你如何讓MiGLayout的行爲像纏繞佈局?
- 9. 使用miglayout的垂直按鈕欄佈局
- 10. 流體佈局 - 保存佈局
- 11. 畫布砌體佈局
- 12. JavaScript流體佈局
- 13. CSS流體佈局?
- 14. Powershell窗體佈局
- 15. Android的工具欄佈局
- 16. android佈局設計工具
- 17. 底部工具欄佈局
- 18. 具有空佈局的JViewports?
- 19. 渲染局部液體佈局(rails3)
- 20. 單頁流體佈局
- 21. 流體和固定佈局
- 22. CSS流體/靜態佈局
- 23. 3列液體佈局
- 24. 邊界和液體佈局
- 25. 固定+流體佈局
- 26. 液體佈局:如何
- 27. 流體佈局純CSS
- 28. 與流體佈局與CSS
- 29. 中心液體佈局
- 30. twitter bootstrap流體佈局