您的位置:首页 > 产品设计 > UI/UE

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

2017-11-08 22:11 453 查看
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐