GroupLayout
是一个 LayoutManager
,它将组件按层次分组,以决定它们在 Container
中的位置。GroupLayout
主要供生成器使用,但也可以手工编码。分组由 Group
类的实例来完成。GroupLayout
支持两种组。串行组 (sequential group) 按顺序一个接一个地放置其子元素。并行组 (parallel group) 能够以四种方式对齐其子元素。
每个组可以包含任意数量的元素,其中元素有 Group
、Component
或间隙 (gap)。间隙可被视为一个具有最小大小、首选大小和最大大小的不可见组件。此外,GroupLayout
还支持其值取自 LayoutStyle
的首选间隙。
GroupLayout是一个很重要的是额布局管理器,在jdk 1.6才加入,配合其它的管理器可以实现很好的界面。
。。
GroupLayout必须要设置它的GroupLayout.setHorizontalGroup和GroupLayout.setVerticalGroup。
GroupLayout.setHorizontalGroup是指按照水平来确定,下面例子“账号”和“密码”是一个级别的,其它的组件也是一个级别的。详情请看代码
GroupLayout.setVerticalGroup。是按照垂直来确定的。他们的级别是按照Group去设置组件的优先级别,级别越高就显示越上面。
GroupLayout.setHorizontalGroup(SequentialGroup(ParallelGroup(component)));
大概就是按照这个顺序去添加,当然不是就这么简单设置,多个component添加到ParallelGroup,然后多个ParallelGroup添加到SequentialGroup里面,
然后就设置到GroupLayout
下面的实例,设置GroupLayout.setHorizontalGroup,就是把2和4添加到一个ParallelGroup.addComponent(component),其它1,3,5,6,7,8添加到另一个ParallelGroup,然后把这两个ParallelGroup按照顺序添加到SequentialGroup.addGrou(ParallelGroup);
/** * @author :陶伟基 ,微博:http://weibo.com/taoandtao * @date :2012/12/10 * @place:广州大学华软软件学院 */ import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextField; public class MyFrame extends javax.swing.JFrame { public static void main(String[] args) { MyFrame f = new MyFrame(); } JLabel label1; JLabel label2; JLabel label3; JTextField tf; JPasswordField psf; JRadioButton rb1; JRadioButton rb2; JButton bt1; JButton bt2; public MyFrame() { this.setVisible(true); this.setSize(250, 220); this.setVisible(true); this.setLocation(400, 200); label1 = new JLabel("华软BBS快捷登陆"); label2 = new JLabel("账号:"); label3 = new JLabel("密码:"); tf = new JTextField(); psf = new JPasswordField(); rb1 = new JRadioButton("记住密码"); rb2 = new JRadioButton("自动登陆"); bt1 = new JButton("登陆"); // 为指定的 Container 创建 GroupLayout GroupLayout layout = new GroupLayout(this.getContentPane()); this.getContentPane().setLayout(layout); //创建GroupLayout的水平连续组,,越先加入的ParallelGroup,优先级级别越高。 GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup(); hGroup.addGap(5);//添加间隔 hGroup.addGroup(layout.createParallelGroup().addComponent(label2) .addComponent(label3)); hGroup.addGap(5); hGroup.addGroup(layout.createParallelGroup().addComponent(label1) .addComponent(psf).addComponent(rb1).addComponent(rb2) .addComponent(tf).addComponent(bt1)); hGroup.addGap(5); layout.setHorizontalGroup(hGroup); //创建GroupLayout的垂直连续组,,越先加入的ParallelGroup,优先级级别越高。 GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup(); vGroup.addGap(10); vGroup.addGroup(layout.createParallelGroup().addComponent(label1)); vGroup.addGap(10); vGroup.addGroup(layout.createParallelGroup().addComponent(label2) .addComponent(tf)); vGroup.addGap(5); vGroup.addGroup(layout.createParallelGroup().addComponent(label3) .addComponent(psf)); vGroup.addGroup(layout.createParallelGroup().addComponent(rb1)); vGroup.addGroup(layout.createParallelGroup().addComponent(rb2)); vGroup.addGroup(layout.createParallelGroup(Alignment.TRAILING) .addComponent(bt1)); vGroup.addGap(10); //设置垂直组 layout.setVerticalGroup(vGroup); } }
相关推荐
.addComponent(jTextFieldAddress, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout....
GroupLayout 是 Java Swing 提供的一种布局管理器,用于设计复杂的图形用户界面(GUI)。 与其他布局管理器相比,GroupLayout 提供了更灵活和功能强大的布局方式。它允许开发者以逻辑组的形式来组织和控制组件的...
import javax.swing.GroupLayout.Alignment; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.LayoutStyle.ComponentPlacement; import javax.swing.JSeparator; import javax.swing...
布局管理器 布局管理器 ................................ ................................ ................................ ................................ ............. 8 4. 4. 4. 代码实例 代码实例 : ...
主要介绍了Java Swing GroupLayout分组布局的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
北华大学开放实验报告 实验项目名称: JAVA程序综合设计(数据库设计) 所属课程名称: 面对象程序设计——JAVA 实 验 类 型: 设 计 型 班 ... import javax.swing.GroupLayout.Alignment; import java.awt.Color; import
由于本程序采用的是Java swing编程,所以采用的是布局为:javax.swing.GroupLayout,即群组布局。 主要的工具包 该程序中用到如下几个工具包: java.applet java.awt java.io java.util javax.imageio javax.swing
javax.swing.GroupLayout.Alignment.LEADING).addGap(0, 300, Short.MAX_VALUE)); pack(); }// /** * @param args */ public static void main(String[] args) { // TODO Auto-generated ...
swing-layout-1.0.4.jar是org.jdesktop.layout,org.jdesktop.layout.GroupLayout类的工具jar包
swt-grouplayout.jar
org.jdesktop.layout jar包,完整亲测
3.2 布局说明 由于本程序采用的是Java swing编程,所以采用的是布局为:javax.swing.GroupLayout,即群组布局。 3.3 主要的工具包 该程序中用到如下几个工具包,为:java.applet,java.awt,java.io,java.uti l...
swt-grouplayout-pgroup
迁移适用于Swing,SWT和JavaFX的官方MiG布局对于手工编写GUI布局的Java开发人员来说,他们希望简单,强大和每个平台都能自动保真,而对于Swing,JavaFX和SWT中的当前布局管理器却不满意,MigLayout解决了您的布局...
* GUI, Graphics, GroupLayout, JDIC * Using the Debugger and the API Docs * And more… VISIT WWW.DEITEL.COM * For information on Deitel’s Dive Into Series corporate training courses offered at ...
组布局测试搞乱 GroupLayout 设计
一个简单多线程下载工具的设计与实现,论文+下载工具 程序中用到jdk1.6的GroupLayout布局。 论文格式规范,详细。非常适合作参考
Netbeans 卡片式窗口实例(CardLayout)
组布局面板 替换 JavaFX 中 Swing 的 。 需要 Java 8。 用法示例: GroupLayoutPane root = new GroupLayoutPane (); root . setPadding( new Insets ( 5 )); StackPane n1 = new StackPane (); n1 . setStyle( ...
利用GroupLayout配置登录XML