【问题标题】:How to make components normal sized in GroupLayout in Java如何在 Java 中的 GroupLayout 中使组件大小正常
【发布时间】:2011-09-16 03:55:39
【问题描述】:

我正在尝试为我的小程序制作布局,但我无法处理一个问题 - 一些元素(例如 JComboBox)尽可能大 - 全部放置在小程序中。 setSize 函数不起作用。我该怎么做才能使它们正常大小? (某些元素,例如 JButtons 和 JLabels 具有正确的尺寸)。

我的代码:

JPanel cp=new JPanel();

String[] s = new String[2];
s[0] = "Price";
s[1] = "Name";

JComboBox c = new JComboBox(s);

JProgressBar pb=new JProgressBar(17, 23);
pb.setValue(20);
pb.setStringPainted(true);

JLabel l=new JLabel("Name of product");

JButton b=new JButton("Send a message");
b.setEnabled(true);

cp.add(c);
cp.add(pb);
cp.add(l);
cp.add(b);

GroupLayout layout = new GroupLayout(cp);
cp.setLayout(layout);

layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);

layout.setHorizontalGroup(
   layout.createSequentialGroup()
      .addGroup(layout.createParallelGroup(GroupLayout.Alignment.CENTER)
           .addComponent(c)
           .addComponent(pb)
           .addComponent(l)
           .addComponent(b))
);
layout.setVerticalGroup(
   layout.createSequentialGroup()
      .addComponent(c)
      .addComponent(pb)
      .addComponent(l)
      .addComponent(b)
);

add(cp);

【问题讨论】:

    标签: java swing layout grouplayout


    【解决方案1】:

    尝试使用setPreferredSize() 方法。

    【讨论】:

    • -1。非常糟糕的 Swing 建议:您应该始终避免(不惜一切代价)在 Swing 组件上调用任何 setXxxxSize()。虽然我不知道GroupLayout,但我想一定有办法告诉它以 OP 想要的方式处理组件大小;为此,最好检查GroupLayout javadoc(尽管它必须有点复杂,因为GroupLayout 不应该手动编码......)
    猜你喜欢
    • 2012-03-17
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多