`

Java 的swing.GroupLayout布局管理器的使用方法和实例

    博客分类:
  • JAVA
 
阅读更多

GroupLayout 是一个 LayoutManager,它将组件按层次分组,以决定它们在 Container 中的位置。GroupLayout 主要供生成器使用,但也可以手工编码。分组由 Group 类的实例来完成。GroupLayout 支持两种组。串行组 (sequential group) 按顺序一个接一个地放置其子元素。并行组 (parallel group) 能够以四种方式对齐其子元素。

每个组可以包含任意数量的元素,其中元素有 GroupComponent 或间隙 (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);
    }
}
复制代码

 

 
 
分享到:
评论

相关推荐

    网页浏览器 java

    .addComponent(jTextFieldAddress, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout....

    java swing-GroupLayout的使用

    GroupLayout 是 Java Swing 提供的一种布局管理器,用于设计复杂的图形用户界面(GUI)。 与其他布局管理器相比,GroupLayout 提供了更灵活和功能强大的布局方式。它允许开发者以逻辑组的形式来组织和控制组件的...

    JAVA图形用户界面

    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...

    SWING图形界面开发手册.pdf

    布局管理器 布局管理器 ................................ ................................ ................................ ................................ ............. 8 4. 4. 4. 代码实例 代码实例 : ...

    Java Swing GroupLayout分组布局的实现代码

    主要介绍了Java Swing GroupLayout分组布局的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    JAVA程序综合设计数据库设计说明.doc

    北华大学开放实验报告 实验项目名称: JAVA程序综合设计(数据库设计) 所属课程名称: 面对象程序设计——JAVA 实 验 类 型: 设 计 型 班 ... import javax.swing.GroupLayout.Alignment; import java.awt.Color; import

    Java电子相册管理系统源码.zip

    由于本程序采用的是Java swing编程,所以采用的是布局为:javax.swing.GroupLayout,即群组布局。 主要的工具包 该程序中用到如下几个工具包: java.applet java.awt java.io java.util javax.imageio javax.swing

    java绘制音频波形图

    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包

    swing-layout-1.0.4.jar是org.jdesktop.layout,org.jdesktop.layout.GroupLayout类的工具jar包

    org.jdesktop.layout jar包,完整亲测

    org.jdesktop.layout jar包,完整亲测

    swt-grouplayout.jar

    swt-grouplayout.jar

    JAVA-电子相册课程设计.doc

    3.2 布局说明 由于本程序采用的是Java swing编程,所以采用的是布局为:javax.swing.GroupLayout,即群组布局。 3.3 主要的工具包 该程序中用到如下几个工具包,为:java.applet,java.awt,java.io,java.uti l...

    swt-grouplayout-pgroup

    swt-grouplayout-pgroup

    miglayout:适用于Swing,SWT和JavaFX的官方MiG布局

    迁移适用于Swing,SWT和JavaFX的官方MiG布局对于手工编写GUI布局的Java开发人员来说,他们希望简单,强大和每个平台都能自动保真,而对于Swing,JavaFX和SWT中的当前布局管理器却不满意,MigLayout解决了您的布局...

    Java for Programmers

    * 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 ...

    GroupLayoutTest:搞乱 GroupLayout 设计

    组布局测试搞乱 GroupLayout 设计

    java多线程下载工具 论文

    一个简单多线程下载工具的设计与实现,论文+下载工具 程序中用到jdk1.6的GroupLayout布局。 论文格式规范,详细。非常适合作参考

    Netbeans 卡片式窗口实例(CardLayout)

    Netbeans 卡片式窗口实例(CardLayout)

    javafx-group-layout:JavaFX 8 的 GroupLayout

    组布局面板 替换 JavaFX 中 Swing 的 。 需要 Java 8。 用法示例: GroupLayoutPane root = new GroupLayoutPane (); root . setPadding( new Insets ( 5 )); StackPane n1 = new StackPane (); n1 . setStyle( ...

    GroupLayoutEngineer-开源

    布局管理器GroupLayout的外壳。 它允许使用简单的二维文本方案来控制组件的放置。 这种用于GUI创建的方法消除了用一维代码表示二维GUI的问题。

Global site tag (gtag.js) - Google Analytics