gpt4 book ai didi

java - JComboBox.addItem 用于空对象

转载 作者:行者123 更新时间:2023-12-01 16:03:39 25 4
gpt4 key购买 nike

嗨,

我有一个 JComboBox,我要向其中添加自定义对象项。但有时添加的对象是空的。因此,当组合框中有空项目时,它会折叠并变得非常薄。但一旦填充,就会变得正常高度。有人可以建议一些方法来保持 JComboBox 的高度,即使没有添加任何项目或空项目也是如此。

privatefinal JComboBoxcomboField = new JComboBox();comboField.removeAllItems();comboField.addItem(getFirstConfig());comboField.addItem(getSecConfig());

谢谢

最佳答案

您可以通过设置最小尺寸来做到这一点,但正确的值取决于字体。您可以猜测该值,也可以在 FontMetrics 的帮助下通过 addNotify 设置它。

我通常发现通过将第一项设置为类似以下内容更容易做到这一点:“--选择配置--”,或者,如果您知道没有可供选择的项目:“--没有可用的配置- -”

更新:

由于您无法使用占位符,因此您的替代方案取决于布局管理器和所使用的 LAF。

这主要相当于设置 JComponent 的最小和/或首选大小。它不精确,但我通常使用 GridBagLayout 并通过这种方法获得良好的结果:

    @Override
public void addNotify() {
super.addNotify();
combo.setMinimumSize(atLeast(combo.getMinimumSize(), 100, 20));
combo.setPreferredSize(atLeast(combo.getPreferredSize(), 100, 20));
}

private Dimension atLeast(Dimension d, int minWidth, int minHeight) {
d.width = Math.max(minWidth, d.width);
d.height = Math.max(minHeight, d.height);
return d;
}

将 100,20 替换为适合您的最小值。

关于java - JComboBox.addItem 用于空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167210/

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