java JcomboBox 如何能手动输入在下拉列表 生效的选项呢?

如原选项为51520,现在手动输入6,如何能让6加入该下拉列表中呢?... 如 原选项为 5 15 20 ,现在手动输入 6 ,如何能让6 加入该下拉列表中呢? 展开
 我来答
Irreappearable
2012-04-22 · TA获得超过4956个赞
知道大有可为答主
回答量:1423
采纳率:25%
帮助的人:3129万
展开全部
监听事件,改变combobox的model
不过把combobox设置成editable貌似用户体现不太好的样子....

Object[] values = new Object[] { "a", "b", "c", };
final DefaultComboBoxModel model = new DefaultComboBoxModel(values);
JComboBox combo = new JComboBox(model);
combo.setEditable(true);

combo.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (model.getIndexOf(e.getItem()) < 0) {
model.addElement(e.getItem());
}
}
});
更多追问追答
追问
e.getItem()  内容是对象 对吗?若需将它 转换为 整型数字 该如何实现呢?
追答
——e.getItem()  内容是对象 对吗?
没错,e.getItem()是下拉框的内容

但是你要知道这个内容来自于哪里,它来自于你提供的对象。我在一开始定义了一个数组:
Object[] values = new Object[] { "a", "b", "c", };
这个数组里面对象的类型是String,所以你getItem得到的是String
如果我一开始values里面放整数,那么你会拿到Integer对象
values甚至可以是任何类的对象,下拉框在现实它们的时候会调用toString来显示

但是对于用户动态输入的值,你一定要把它当做String对待(尽管实验证明不是如此,但是那个很复杂,先不管),因为用户无论怎么输入,也不可能输入一个对象,他只能输入字符串。所以这个时候你必须首先调用e.getItem().toString()来拿到新增项目的字符串表达,然后用Integer.parseInt来转换。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式