jdesktop.layout布局管理器
1. 参数配置
GroupLayout layout = new GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
2. 开始构建布局
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(imageLabel)
.add(18, 18, 18)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(org.jdesktop.layout.GroupLayout.LEADING, appTitleLabel)
.add(org.jdesktop.layout.GroupLayout.LEADING, appDescLabel, GroupLayout.PREFERRED_SIZE,200,Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(versionLabel)
.add(vendorLabel)
.add(homepageLabel))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(appVersionLabel)
.add(appVendorLabel)
.add(appHomepageLabel)))
.add(closeButton))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(imageLabel)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(appTitleLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(appDescLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(versionLabel)
.add(appVersionLabel))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(vendorLabel)
.add(appVendorLabel))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(homepageLabel)
.add(appHomepageLabel))
.add(15, 30, Short.MAX_VALUE)
.add(closeButton)
.addContainerGap()
)
);
PS:注意事项
1. ParallelGroup与指定方向交叉,SequentialGroup与指定方向平行
2. ParallelGroup只能设置尺寸不能设置间隔,SequentialGroup都可以设置
3. 间隔的种类有ContainerGap和PreferredGap之分
4. min<=pref<=max
5. min=GroupLayout.PREFERRED_SIZE pref=GroupLayout.DEFAULT_SIZE max=Short.MAX_VALUE