GroupLayout将其组件分组并将其分层放置在Container中。分组是通过Group类的实例完成的。
Group是一个抽象类, 实现此Group类的两个具体类是SequentialGroup和ParallelGroup。
SequentialGroup依次将其子项依次放置, 其中ParallelGroup将其子项彼此对齐。
GroupLayout类提供诸如createParallelGroup()和createSequentialGroup()之类的方法来创建组。
GroupLayout独立对待每个轴。即, 存在代表水平轴的组和代表垂直轴的组。每个组件必须同时存在于水平和垂直组中, 否则在布局期间或请求最小, 首选或最大大小时会引发IllegalStateException。
嵌套类
修饰符和类型 | 类 | 描述 |
---|---|---|
静态类 | GroupLayout.Alignment | 枚举ParallelGroup对齐其子级的可能方式。 |
class | GroupLayout.Group | 组为GroupLayout支持的两种类型的操作提供了基础:一个接一个地布置组件(SequentialGroup)或对齐组件(ParallelGroup)。 |
class | GroupLayout.ParallelGroup | 这是一个调整并调整其子级的组。 |
class | GroupLayout.SequentialGroup | 这是一个组, 一个接一个地依次定位和调整其元素的大小。 |
修饰符和类型 | 领域 | 描述 |
---|---|---|
静态整数 | DEFAULT_SIZE | 它指示组件或间隙的大小应用于特定范围值。 |
静态整数 | PREFERRED_SIZE | 它指示对于特定的范围值, 应使用组件或间隙的首选大小。 |
GroupLayout(Container host) | 它为指定的Container创建一个GroupLayout。 |
修饰符和类型 | 领域 | 描述 |
---|---|---|
void | addLayoutComponent(Component component, Object constraints) | 它通知组件已添加到父容器。 |
void | addLayoutComponent(String name, Component component) | 它通知组件已添加到父容器。 |
GroupLayout.ParallelGroup | createBaselineGroup(boolean resizable, boolean anchorBaselineToTop) | 它创建并返回一个ParallelGroup, 将其元素沿基线对齐。 |
GroupLayout.ParallelGroup | createParallelGroup() | 它创建并返回一个具有Alignment.LEADING对齐方式的ParallelGroup。 |
GroupLayout.ParallelGroup | createParallelGroup(GroupLayout.Alignment alignment) | 它创建并返回具有指定对齐方式的ParallelGroup。 |
GroupLayout.ParallelGroup | createParallelGroup(GroupLayout.Alignment alignment, boolean resizable) | 它创建并返回具有指定对齐和调整大小行为的ParallelGroup。 |
GroupLayout.SequentialGroup | createSequentialGroup() | 它创建并返回一个SequentialGroup。 |
boolean | getAutoCreateContainerGaps() | 如果容器和与容器接壤的组件之间的间隙自动创建, 则返回true。 |
boolean | getAutoCreateGaps() | 如果自动创建组件之间的间隙, 则返回true。 |
boolean | getHonorsVisibility() | 它返回在确定零件尺寸和位置时是否考虑零件的可见性。 |
float | getLayoutAlignmentX(Container parent) | 它返回沿x轴的对齐方式。 |
float | getLayoutAlignmentY(Container parent) | 它返回沿y轴的对齐方式。 |
Dimension | maximumLayoutSize(Container parent) | 它返回指定容器的最大大小。 |
public class GroupExample {
public static void main(String[] args) {
JFrame frame = new JFrame("GroupLayoutExample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contentPanel = frame.getContentPane();
GroupLayout groupLayout = new GroupLayout(contentPanel);
contentPanel.setLayout(groupLayout);
JLabel clickMe = new JLabel("Click Here");
JButton button = new JButton("This Button");
groupLayout.setHorizontalGroup(
groupLayout.createSequentialGroup()
.addComponent(clickMe)
.addGap(10, 20, 100)
.addComponent(button));
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(clickMe)
.addComponent(button));
frame.pack();
frame.setVisible(true);
}
}
【Java GroupLayout】输出:
文章图片
例子2
import java.awt.Container;
import javax.swing.GroupLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import static javax.swing.GroupLayout.Alignment.*;
public class GroupExample2 {
public static void main(String[] args) {
JFrame frame = new JFrame("GroupLayoutExample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container myPanel = frame.getContentPane();
GroupLayout groupLayout = new GroupLayout(myPanel);
groupLayout.setAutoCreateGaps(true);
groupLayout.setAutoCreateContainerGaps(true);
myPanel.setLayout(groupLayout);
JButton b1 = new JButton("Button One");
JButton b2 = new JButton("Button Two");
JButton b3 = new JButton("Button Three");
groupLayout.setHorizontalGroup(groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(LEADING).addComponent(b1).addComponent(b3))
.addGroup(groupLayout.createParallelGroup(TRAILING).addComponent(b2)));
groupLayout.setVerticalGroup(groupLayout.createSequentialGroup()
.addGroup(groupLayout.createParallelGroup(BASELINE).addComponent(b1).addComponent(b2))
.addGroup(groupLayout.createParallelGroup(BASELINE).addComponent(b3)));
frame.pack();
frame.setVisible(true);
}
}
输出:
文章图片
推荐阅读
- Java JButton用法
- 你不能错过的14款《魔兽世界》等终极游戏推荐合集
- 10款最棒的游戏录制软件推荐合集(哪款适合你())
- WinXP怎样改扩展名?改文件扩展名的办法与步骤
- WinXP电脑开机后自动重启如何处理?
- WinXP已取消到该页面的导航的处理办法
- WinXP系统Cookie是啥意思?可以删除吗?
- WinXP系统将FAT32转NTFS格式的办法
- WinXP系统打开WZC服务的办法