2

我有一个 JCombobox,我在运行时添加了一些项目。其中一些很长,我的 Jcombobox 也长得很长。它位于带有 BoxLayout (PAGE_AXIS) 的 JPanel 容器中。我不知道如何防止增长...
我想知道应该有一个属性overflow,如果它是“123456789”,那么在组合框中项目将显示为“123 ...”。

编辑:

我看了你的回答,非常感谢。但问题是我的 JPanel 可以调整大小,我需要让它的孩子总是填满父母。所以我不能设置首选大小,因为我的 JPanel 的大小可以在运行时改变。
由于同样的原因,我也无法设置最大尺寸或使用 setPrototypeDisplayValue() 。

我尝试使用其他布局(GroupLayout、BorderLayout)但结果是一样的。

如果您愿意,我可以发布代码,但我认为没有必要。让我知道您是否仍然需要它。
刚刚尝试使用单行而不是 JCombobox 的 JTextArea。结果是一样的。我打字的时候它在增长。

4

3 回答 3

5
于 2012-06-06T09:29:49.840 回答
3

你可以试试这个:

myCombo.setPreferredSize(new Dimension(myCombo.getHeight(), myCombo.getWidth()))
于 2012-06-06T09:12:42.140 回答
3

该问题有多种解决方案。您可以更改布局以限制增长。

或以某种方式修复组合框的最大大小

或者添加一个自定义渲染器(扩展默认渲染器)并在那里设置首选大小。

于 2012-06-06T09:14:49.033 回答