java - 如何将 Java ComboBox 的宽度设置为与其所在的 JPanel 一样宽?

标签 java swing layout width jcombobox

我想知道是否有办法将 ComboBox 的宽度设置为与其所在的 JPanel 一样宽。 我有以下代码片段:

    public newPanel() {
        setLayout(new GridLayout(2,0));

        String[] example = new String[] {"one, "two", "three", "four"};

        JComboBox cBox = new JComboBox(levels);
        cBox.setPreferredSize(new Dimension(300, 20));

        this.add(new JLabel("This is text that goes above the ComboBox:"));
        this.add(cBox);
    }

您可以看到我说过我希望 ComboBox 的宽度为 300px,但是有没有办法自动将其设置为与其所在的 Panel 一样宽? 像cBox.setPreferredWidth(max);(我知道那不存在,只是为了展示我的思维方式)。

最佳答案

is there a way to automatically set it as wide as the Panel it's in?

你可能想让布局管理器来处理这个。

如果您设置首选宽度,GridLayout 将确保组合框水平填充整个面板。

这个片段...

import java.awt.GridLayout;
import javax.swing.*;

class Test {
    public static void main(String[] args) {

        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(2,0));

        String[] example = new String[] {"one", "two", "three", "four"};

        JComboBox cBox = new JComboBox(example);
        //cBox.setPreferredSize(new Dimension(300, 20));

        panel.add(new JLabel("This is text that goes above the ComboBox:"));
        panel.add(cBox);
        panel.setBorder(BorderFactory.createTitledBorder("Panel border"));

        frame.setContentPane(panel);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

...结果

enter image description here

如果这对您来说不够灵活,我建议您使用 GridBagLayout

关于java - 如何将 Java ComboBox 的宽度设置为与其所在的 JPanel 一样宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5866814/

相关文章:

java - 如何在不更改其位置的情况下旋转图形对象?

c# - 使用拆分器使 ItemsControl 子项可调整大小

html - 在 flexbox 中遇到障碍,将一个 div 放在另一个下面,同时将第三个放在一边

gwt - 如何使用 GWT 垂直居中元素?

java - java.io.IOException:org.apache.thrift.protocol.TProtocolException:无法编写没有设置值的TUnion

java - 如何在 Android 中序列化位图

java - 如何使用 MediaRecorder 打开或关闭录音

java - Jenkins 显示 log4j 提示 : log4j:WARN No appenders could be found for logger

java - 我在检索按钮组的值时做错了什么?

java - Cellrenderer 更改单元格背景颜色还更改值格式、对齐方式