栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaSwing GroupLayout:调整大小和限制组件大小

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaSwing GroupLayout:调整大小和限制组件大小

在此示例中,G

roupLayout
可以简单地依靠标签的首选大小,而不必诉诸任何
setXXXSize()
方法。用这种方法

  • 标签的空间始终容纳最大的标签。
  • 文本字段可以通过有用的方式调整大小。
  • 跨平台和字体的结果是正确的。
  • “你无需为大多数组件指定任何内容,因为组件本身具有默认的所需调整大小行为。” — 如何使用
    GroupLayout
    :组件大小和可调整大小
    使用
    GroupLayout.Alignment.TRAILING
    右对齐标签是个人喜好,我添加了第二个面板以嵌套在另一个布局中显示其工作方式。
import java.awt.EventQueue;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.GroupLayout;import javax.swing.Jframe;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class GroupPanel extends JPanel {    private JLabel label1 = new JLabel("Primary:");    private JTextField field1 = new JTextField(16);    private JLabel label2 = new JLabel("Secondary:");    private JTextField field2 = new JTextField(16);    private JLabel label3 = new JLabel("Tertiary:");    private JTextField field3 = new JTextField(16);    public GroupPanel(int n) {        this.setBorder(BorderFactory.createTitledBorder("Panel " + n));        GroupLayout layout = new GroupLayout(this);       this.setLayout(layout);        layout.setAutoCreateGaps(true);        layout.setAutoCreateContainerGaps(true);        layout.setHorizontalGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.TRAILING)     .addComponent(label1)     .addComponent(label2)     .addComponent(label3)) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)     .addComponent(field1)     .addComponent(field2)     .addComponent(field3))        );        layout.setVerticalGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(GroupLayout.Alignment.baseLINE)     .addComponent(label1)     .addComponent(field1)) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.baseLINE)     .addComponent(label2)     .addComponent(field2)) .addGroup(layout.createParallelGroup(GroupLayout.Alignment.baseLINE)     .addComponent(label3)     .addComponent(field3))        );    }    private static void display() {        Jframe f = new Jframe("GroupPanel");        f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);        f.setLayout(new BoxLayout(f.getContentPane(), BoxLayout.Y_AXIS));        f.add(new GroupPanel(1));        f.add(new GroupPanel(2));        f.add(Box.createVerticalGlue());        f.pack();        f.setLocationRelativeTo(null);        f.setVisible(true);    }    public static void main(String[] args) {        EventQueue.invokeLater(new Runnable() { @Override public void run() {     display(); }        });    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441733.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号