【发布时间】:2011-01-21 10:52:38
【问题描述】:
下面的代码有一个错误。加载 JFrame 后,按 Tab 键将焦点放在 JComboBox 上,然后尝试按向下键。它什么也没做。
在位置 0 插入 Null 会导致这种情况。但是,我仍然希望能够选择 Null。我不想强迫用户选择一个选项。
package kobalt.test.colin;
import java.awt.*;
import javax.swing.*;
public class ColinTest extends JFrame {
private JTextField mTextField;
private JComboBox mComboBox;
public ColinTest(){
setLayout(new BorderLayout());
mTextField = new JTextField("Something");
mComboBox = new JComboBox(new String[]{"One", "Two"});
mComboBox.insertItemAt(null, 0); //this line causes the bug
add(mTextField, "North");
add(mComboBox, "South");
pack();
setVisible(true);
}
public static void main(String[] argv) {
new ColinTest();
}
}
我可以在 JComboBox 中覆盖什么来解决此问题吗?
我真的不喜欢在位置 0 处插入一个空字符串,因为我必须在任何地方处理它。
使用 Wrapping 对象可能是一种选择,但我宁愿扩展然后覆盖 JComboBox 中的某些内容。
【问题讨论】: