使用可编辑JComboBox的时遇到的一个坑,编辑后如果JCombobox的焦点还在,则获取不到当前的编辑值。

本文探讨了在Swing应用中,JComboBox与JButton交互时遇到的问题:当JButton不可聚焦时,编辑JComboBox的值后点击按钮无法获取最新的编辑值。文章解释了这一现象的原因,并给出了注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

界面上只有一个JComboBox和一个JButton,点击JButton打印JComboBox的当前值。

假如JButton的focusable设置为false,即不能获取焦点。

那么当编辑JComboBox的值以后,点击JButton打印cmb.getSelectedItem().toString(),不是当前JComboBox编辑框内的值,而是上次的选择项的值。

就是说对JComboBox进行编辑后,必须等JComboBox失去焦点,当前的编辑值被“提交”以后才能使用getSelectedItem获取到。


需要注意的时,在JButton 的点击响应函数中使用 other.requestFocusInWindows()也是没用的。

这里的内部机制顺序还没有搞清楚。总之是一个经验教训,可编辑JComboBox和JButton配合时,JButton需要注意Focusable属性!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值