Java容器广泛,布局方式也多种多样。基本用法API使用手册中都有相关说明,这里仅简单介绍笔者常用的布局方式,并且辅以代码。
1. TableLayout 表格布局
这种布局很常见,相当于画一个表格,然后把容器往里填塞。容器尺寸定好后,很好用。适用于稍微复杂一点的,横向纵向都需要布局的方案。
1 public JPanel createTabPanel() { 2 JPanel panel = new JPanel(); 3 double[][] size = { { 10,30,TableLayout.FILL,10 }, { 10,TableLayout.FILL,100,50 } }; //表格尺寸{{每一列宽度},{每一行宽度}}。这里是4列3行。 4 panel.setLayout(new TableLayout(size)); 5 JButton jButton = new JButton("按钮"); 6 panel.add(jButton,"1,2"); // “1,2”代表第1列第2行 7 }
2. CardLayout卡片式布局
这种布局主要适用于同一个位置,需要显示不同界面时的布局。卡片可以存储很多个界面,根据需要显示。
1 public class TestPanel extends JPanel { 2 private CardLayout cardLayout; 3 private JPanel cardlayoutPanel; 4 private JPanel PanelA; 5 private JPanel PanelB; 6 private String[] stringArray = new String[]{"panelA","panelB"}; 7 8 private JPanel createCardLayout(){ 9 cardLayout = new CardLayout(); 10 cardlayoutPanel = new JPanel(cardLayout); 11 panelA = createPanelA(); 12 PanelB = createPanelB(); 13 cardlayoutPanel.add(panelA,stringArray[0]); 14 cardlayoutPanel.add(panelA,stringArray[1]); 15 return cardlayoutPanel; 16 } 17 18 private void setCardLayoutShow(index){ 19 cardLayout.show(cardlayoutPanel,stringArray[index]); 20 } 21 22 }
3. 未完