Java Swing组件布局
程序员文章站
2024-01-31 12:54:34
...
1、Swing组件的addActionListener()方法
接受实现了ActionListener接口的对象作为参数。
2、ActionListener接口
该接口只包含了actionPerformed()方法。
3、控制布局
- 完全基于代码,没有用来控制组件布置的"资源"。 这点与MFC、C# Windows Form不同。
- 组件放置在窗体上的方式不是通过绝对坐标控制,而是由"布局管理器"(layout manager)根据组件加入的顺序决定其位置。
JApplet、JFrame、JWindow和JDialog都可以通过getContontPane()得到一个容器(Container),用来包含和显示组件。它还有一个被称为setLayout()的方法,可以通过这个方法来选择不同的布局管理器。其他的类,例如:JPanel,可以直接设置布局管理器。
-
BorderLayout
Applet在缺省的情况下的布局方式是BorderLayout。如果不加入其他指令,它将接受调用add()方法而加入的组
件,把它放置在*,而后把组件向各个方向拉伸,直到与边框对齐。
-
FlowLayout
组件从左到右"流动"到窗体上,直接占满上方的空间,然后向下移动一行,继续流动。
-
GridLayout
GridLayout允许构建一个放置组件的表格,在向表格里添加组件的时候,它们将按照从左到右,才能够上到下的顺序 加入。在构造器中要指定需要的行数与列数,它们将均匀分布在窗体上。
-
BoxLayout
使用Box组件进行定位。可以指定组件按照水平或者垂直排列。也可以再组件之间添加间隔。
//Box布局
Box box = Box.createVerticalBox();
cp.setLayout(new BorderLayout());
cp.add(box);
box.add(btnNorth);
box.add(Box.createVerticalStrut(10));
box.add(btnSouth);
box.add(Box.createVerticalStrut(10));
box.add(btnEast);
box.add(Box.createVerticalStrut(10));
box.add(btnWest);