JFrame图形界面(简单)
发布者 : adler | 发布时间 : 2019-01-17 19:20:13文章号 : 38 | 阅读量 : 150+1 | AAW值(?) : 0.02 (仅供参考)
新建一个简单的窗体(仅添加一个文本框)
public static void main (String[] args) {
//新建一个JFrame窗体
JFrame jf = new JFrame("电梯模拟器");
//设置窗体的宽为400 高为300
jf.setSize(400, 300);
//直接设置窗口开启后再屏幕上显示的位置
//jf.setLocation(200,200);
//设置窗口居中
//setLocationRelativeTo: 设置窗口相对坐标
jf.setLocationRelativeTo(null);
//设置布局(下面一章有解释)
jf.setLayout(null);
//设置文本内容
JLabel jl = new JLabel("文字");
//文字颜色
jl.setForeground(Color.GRAY);
jl.setBounds(50,50,280,30);
jf.add(jl);
//点叉之后结束进程
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗口
jf.setVisible(true);
}
setLayout(布局对象)
声明布局格式的方式 如:
setLayout(new FlowLayout());
1. FlowLayout布局
FlowLayout布局是JPanel 的默认布局,组建按照加入的先后顺序从左到右排列,一行排满之后就转到下一行继续从左到右排列,每一行都居中排列,水平和垂直的间距都是5个像素,组件设置大小用 set.PreferredSize(Dimension preferredSize)
例如:
button.setPreferredSize(new Dimension(20,20));
重新设置布局方式: setAlignment(int aligin); aligin 的取值为FlowLayout.LEFT,FlowLayout.RIGHT,FlowLayout.CENTER ; 重新设置水平和垂直的间隙 setHgap(int hgap); setVgap(int vgap);
2.BorderLayout布局
Window型容器的默认布局(JFrame,JDialog) 容器空间简单的划分为东南西北中5个区域,中间的区域最大,由BorderLayout 中的静态变量WEST,EAST,SOUTH,NORTH,CENTER表示区域.有BorderLayout布局的容器con 例:
con.add(b,BorderLayout.EAST);
添加到某一个区域的组件占有整个区域,再添加进来,旧的就会被替换掉,只能添加5个组件,5个以上的话使用其他的布局或者容器嵌套.
3.CardLayout布局
组件被层叠的放入容器,最先加入的在最上面,同一时刻容器只能从这些组件中选一个来显示,容器调用add(String s,Component b);的方式将组件b加入容器 s为代号和组件没有必然关系,不同的组件代号不能相同
调用show(Component con,s)的方法显示代号为s的容器 card.show(con,s); card.first(con) card.next(con),card.last(con) ,card.previous(con) 分别显示容器con的第一个,下一个,最后一个,上一个 组件
4.GirdLayout布局
把容器分成若干行和若干列的网格区域 构造方法 GirdLayout(int m,int n); 创建布局对象,指定行和列
GridLayout gy =new GridLayout(10,12);
可以添加m*n个组件 用add(Component c)将组件添加进入 ,从第一行第一个开始到最后一行最后一个 (每个网格强制相等)
5.BoxLayout 盒式布局
Box 创建的容器是盒式容器 默认布局是盒式布局并且不允许修改
盒式布局构造方法BoxLayout(Container con,int axis);axis 的有效值 BoxLayout.X_AXIS, BoxLayout.Y_AXIS.决定盒式布局是行型还是列型 行(列)型组件再多也不会延伸到下一行(列) ,沿着同一水平线或垂直线
Box 类调用静态方法createHorizontalBox() 获得一个行型的盒式布局的盒式容器
Box类 调用静态方法createVerticalBox() 获得一个列型的盒式布局的盒式容器
Box 调用静态方法createVerticalStrut(int height) createHorizontalBox(int width) 得到不可见的Strut对象 设置水平(垂直)的Box之间的间距
6.null 布局空布局可以准确的定位组件在容器中的位置和大小setBounds(int a,int b,int width,int height) 设置位置和本身大小, a,b 是组件在容器p中的坐标