GUI布局
边界布局
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | packageguiTest;//JFrame默认的是边界布局BorderLayoutimportjava.awt.BorderLayout;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassBorderLayoutDemo {    publicstaticvoidmain(String[] args) {        JFrame f = newJFrame("边界布局BorderLayout");        //JFrame的默认LayoutManager为BorderLayout    //  f.setLayout(new BorderLayout());//可以不写,默认的就是流式布局        JButton btn =  newJButton("北");        f.add(btn,BorderLayout.NORTH);                btn=newJButton("南");        f.add(btn,BorderLayout.SOUTH);                btn=newJButton("东");        f.add(btn,BorderLayout.EAST);                btn=newJButton("西");        f.add(btn,BorderLayout.WEST);                btn=newJButton("中");        f.add(btn,BorderLayout.CENTER);                f.pack();//也可以用f.setSize(222,222);来进行设置        f.setVisible(true);        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }} | 
流式布局
| 1 2 3 4 5 6 78 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | packageguiTest;importjava.awt.BorderLayout;importjava.awt.CardLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;publicclassCardLayoutDemo {    privatestaticJPanel p;    publicstaticvoidmain(String[] args) {        JFrame f = newJFrame("卡片布局CardLayout");        p=newJPanel();        //设置p的布局管理器为卡片布局CardLayout        p.setLayout(newCardLayout());                //新建两个JPanel        JPanel p1 = newJPanel();        JPanel p2 = newJPanel();        JLabel lb = newJLabel("第一个面板");        p1.add(lb);//面板里面加标签        lb=newJLabel("第二个面板");        p2.add(lb);//面板里面加标签                //将新建的两个JPanel面板添加到p中        p.add(p1,"first");        p.add(p2,"second");                //设置默认显示first所对应的JPanel p1        ((CardLayout)p.getLayout()).show(p,"first");                JButton btn = newJButton("改变面板");        btn.addActionListener(newActionListener() {                        @Override            publicvoidactionPerformed(ActionEvent e) {                // TODO Auto-generated method stub                //当点击'改变面板'时,显示second对应的JPanel p2                ((CardLayout)p.getLayout()).show(p,"second");            }        });        f.add(btn,BorderLayout.NORTH);        f.add(p,BorderLayout.CENTER);        f.setSize(400,150);//f.pack();                f.setVisible(true);        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }} | 
网格布局
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | packageguiTest;importjava.awt.FlowLayout;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassFlowLayoutDemo {    publicstaticvoidmain(String[] args) {        // TODO Auto-generated method stub        JFrame f = newJFrame("流式布局FlowLayout");        f.setLayout(newFlowLayout());        for(inti=0;i<7;i++)        {            JButton btn=newJButton("Button"+i);            f.add(btn);        }        f.setSize(300,250);        //f.pack();默认边框设置宽度和长度刚刚好的样子        f.setVisible(true);        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }} | 
卡片布局
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | packageguiTest;importjava.awt.GridLayout;importjavax.swing.JButton;importjavax.swing.JFrame;publicclassGirdLayoutDemo {    publicstaticvoidmain(String[] args) {        JFrame f = newJFrame("网格布局GirdLayout");        //设置f的布局管理器为3行3列的GirdLayout组件间水平与垂直间距为5        f.setLayout(newGridLayout(3,3,5,5));        for(inti=1;i<10;++i)        {            JButton btn = newJButton(String.valueOf(i));            f.add(btn);        }        f.pack();        f.setVisible(true);        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);            }} | 
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号