gpt4 book ai didi

Java设置JPanel的尺寸

转载 作者:行者123 更新时间:2023-12-02 00:39:03 26 4
gpt4 key购买 nike

我在 JPanel 中创建了一个 JPanel,我想将其宽度和高度属性设置为一些特定的数字。这是我到目前为止所拥有的。

  searchPanel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
searchPanel.setBorder(BorderFactory.createCompoundBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED), new EmptyBorder(12, 12, 12, 12)));

c.insets = new Insets(2, 2, 2, 2);
c.fill = GridBagConstraints.HORIZONTAL;

c.weightx = 1;
c.weighty = 1;
c.gridx = 0;
c.gridy = 0;
searchPanel.add(typeLabel, c);

c.weightx = .8;
c.weighty = 1;
c.gridx = 0;
c.gridy = 1;
searchPanel.add(typeComboBox, c);
....

yearComboBox.setModel(this.yearDefaultCombo);
typeComboBox.setModel(this.typeDefaultCombo);

updateYearComboBox();

this.setLayout(new BorderLayout(10, 10));
this.setBorder(new EmptyBorder(10, 10, 10, 10));

searchPanel.setSize(200, 100);
this.add(searchPanel, BorderLayout.NORTH);

在代码中,“this”指的是父 JPanel。现在,由于 BorderLayout.NORTH 约束,我的内部“searchPanel”沿着屏幕的整个顶部部分拉伸(stretch),但我只希望它作为左上角的一个小面板,但 setSize 对我不起作用。

谢谢。

最佳答案

大多数布局管理器更重视首选尺寸而不是尺寸,因此您可以在 JPanel 上尝试 setPreferredSize(...) 。但无论您做什么,如果您添加它的 BorderLayout.NORTH,它都会拉伸(stretch)以填充包含 JPanel 的整个北位置。您可能希望将 searchPanel 嵌套到另一个 JPanel 中(可能是使用 BoxLayout 的 JPanel),并添加该 JPanel BorderLayout.NORTH。

请阅读布局教程及其 API,因为其中大部分内容都有解释。

关于Java设置JPanel的尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6892777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com