软件构造有感之三—图形界面展示
由于软件构造实验中有用到图形界面展示,所以如下我写了一个我的一些感受以及实现方式。
对于要写一个图形界面,首先要想好一个容器。然后在这个容器中加入某些组件。
第一步,创建容器
可以在类中new一个JFrame,也可以使用继承的方式。继承一个java自带一个JFrame的类。
在得到这么一个JFrame容器之后,就可以往这个容器里面添加组件了
容器 | 描述 |
---|---|
JFrame | 一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器) |
JDialog | 对话框 |
JPanel | 一般轻量级面板容器组件 |
组件 | 描述 |
---|---|
JLabel | 标签 |
JButton | 按钮 |
JTextField | 文本框 |
第二步,在容器中增加组件并且设置布局
常见的布局有java自带的某些布局形式也有自己定义的布局形式。
FlowLayout(流布局)、BorderLayout(边框布局)、GridLayout(网格布局)
流布局象在word中打字,组件从左向右排列,一行排满后自动换下一行。组件默认居中对齐,可以设置为左/右对齐。流布局会维持组件的原始大小。流布局是 JPanel(面板)的默认布局。
容器可以使用setLayout()方法改变布局。
public class Test {
public static void main(String[] args) {
JFrame jf = new JFrame("流布局DEMO");
FlowLayout fl = new FlowLayout(); //使用流布局
jf.setLayout(fl);//修改布局管理
JButton jb1 = new JButton("按钮1");
jf.add(jb1); //把按钮jb1放入窗口
JButton jb2 = new JButton("按钮2");
jf.add(jb2);//把按钮jb2放入窗口
jf.setSize(600, 300); //设置窗口的大小
jf.setLocation(300,200);//设置窗口的初始位置
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true); //显示窗口
}
}
得到如下界面
边框布局把整个窗口分成了5个部分,上北下南左西右东,剩下的是中部。
GridLayout(网格布局)
网状布局就是把窗口分成几行几列的表格方式,构造时需要指定行数和列数。组件在网状布局中不保持原始大小,会充满整个区域。组件在网状布局中,一个格子只放一个组件,自动向后走。
不过我个人还是推荐使用自定义式的布局,但是比较麻烦,要自己对整个面板找好坐标位置以及每个组件的大小