我有一个JCombobox,我在运行时添加了一些项目。其中一些很长,我的Jcombobox也长得很长。它位于带有BoxLayout(PAGE_AXIS)的JPanel容器中。我不知道如何阻止成长...
我想知道应该有一个像overflow
这样的属性,如果它是“123456789”,在combobox项目中将显示为“123 ...”。
编辑:
我读了你的答案,非常感谢你。但问题是我的JPanel可以调整大小,我需要让它的孩子总是填充父级。因此我无法设置首选大小,因为我的JPanel大小可以在运行时更改 而且由于同样的原因,我也无法设置最大大小或使用setPrototypeDisplayValue()。
我尝试使用其他布局(GroupLayout,BorderLayout),但结果是一样的。
如果你愿意,我可以发布代码,但我认为没有必要。如果你还需要,请告诉我。
刚尝试使用JTextArea单行而不是JCombobox。结果是一样的。当我输入时,它正在增长。
答案 0 :(得分:5)
我通过overrode解决了类似的问题{{3p>
并且有两种方式(如提到的@Stas)调整JComboBox或其派生的Popup或两者的大小
答案 1 :(得分:3)
你可以试试这个:
myCombo.setPreferredSize(new Dimension(myCombo.getHeight(), myCombo.getWidth()))
答案 2 :(得分:3)
该问题有多种解决方案。您可以更改布局以限制增长。
或以某种方式修复组合框的最大尺寸
或者添加自定义渲染器(扩展默认渲染器)并在那里设置首选大小。