#javaGUI#基于swing包的java用户界面设置入门,布局篇

java的几种基础的布局管理器为FlowLayout(流水布局)、BorderLayout(边界布局)、GridLayout(网格布局)、CardLayout(卡片布局),还有其他几种更复杂的布局管理器这里就不做示例了。
示例代码如下:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class layout_try extends JFrame{
    public layout_try(){
        setTitle("布局管理器");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


        setLayout(new FlowLayout());
        //流水布局,panel类容器默认的布局管理器,组件位置会随着窗口大小移动
        //new FlowLayout(FlowLayout.LEFT,10,20)参数指明组件间水平间距为10个像素,垂直间距为20个像素,每行组件向左看齐
        //若不指明,默认间隔为5个像素
        JButton bu_1 = new JButton("线性代数");
        JButton bu_2 = new JButton("离散数学");
        JButton bu_3 = new JButton("数字逻辑");
        add(bu_1);
        add(bu_2);
        add(bu_3);


        setLayout(new BorderLayout());
        //边界布局,采用东西南北中五个区域放置组件
        add("East",new JButton("篮球"));
        add("Center",new JButton("足球"));
        add("North",new Checkbox("check"));


        setLayout(new GridLayout(3,4));
        //网格布局,按指定行列数等分成网格,每格放一个组件
        //组件默认间距为0,若要指定间距,如(4,3,5,5),即设置水平和垂直间距为5个像素
        //GridBagLayout为网格包布局,升级版的GridLayout,可以安排大小不一的组件等
        for(int i=1;i<=9;i++){
            add(new JButton(""+i));
        }

        CardLayout card = new CardLayout();
        setLayout(card);
        //卡片布局,像一叠卡片,每张卡片代表一种不同的布局,每次只有一张在最上面显示出来
        //card.next(容器名称)   显示容器中当前组件之后的一个组件,若当前组件为最后添加的组件,则显示第一个组件,即卡片组件显示是循环的。
        //card.first(容器名称)   显示容器中第一个组件
        //card.last(容器名称)   显示容器中最后一个组件
        //card.previous(容器名称)  显示容器中当前组件之前的一个组件。
        Choice ch = new Choice();
        JPanel jp=new JPanel();
        jp.add(ch);
        add(jp);
        for(int i=1;i<=4;i++){
            ch.add(""+i);//单独填i会报错,前面加个String类空项即可
        }//之后可加事件响应实现不同卡片的切换,此处不做示例


    }
    public static void main(String[] s){
        layout_try f = new layout_try();
        f.pack();
        f.setVisible(true);
    }
}

你可能感兴趣的:(java编程学习)