【发布时间】:2011-10-11 06:52:20
【问题描述】:
我的JFrame 中有一个JComboBox 对象,其行为与预期完全一致。但是,我想让它可编辑,以便用户可以在必要时输入替代值。不幸的是,使用setEditable(true) 启用编辑会导致其宽度显着增加。如何在允许编辑 JComboBox 的同时保持其宽度与最大可选项目所需的宽度一样宽?
JComboBox 在JPanel 和FlowLayout 中,但我认为这无关紧要,因为更改JPanel 的宽度不会影响JComboBox 的宽度。
【问题讨论】:
-
到目前为止,我发现产生所需行为的唯一方法是:
comboBox.setPreferredSize(new java.awt.Dimension(50, 22)); -
“唯一的方法”是什么意思。我为您提供了一个解决方案,允许您指定要显示的字符数,因此您不必对实际尺寸进行硬编码。
-
我很抱歉。当我最初尝试您的解决方案时,我在运行
pack()之前运行comboBox.setEditable(true),这导致代码无法工作。当我在pack()之后移动它时,您的代码按预期工作。我不知道为什么它会有所作为......
标签: java swing width jcombobox