编辑:由于术语“默认值”令人困惑,我将其更改为“初始值”。检查JComboBox是否具有默认值
这是一个有趣的问题。我在网站上搜索了一个答案,但没有找到答案。
我正在用Java编写一个验证器类,我想验证的一件事是JComboBox是否有其初始值。
注意,我是不检查,看看用户是否选择了值;只要用户选择的值与初始值相同即可。
例如,假设有三种选择:
Some Message Here
Item 1
Item 2
Item 3
...等。 “Some Message Here”文本将是初始值,我将使用setSelectedIndex或setSelectedItem方法进行设置。
问题是,一旦用户选择另一个项目(比如项目1),那么就没有办法告诉初始值应该是什么。
我不能仅仅检查一个“幻数”(比如说,如if (cb.getSelectedIndex() == 0)
),因为验证器类无法知道索引0处的值是否实际上是初始值应该是什么是。 (也可能不是,例如在美国的州名单中)。
也不能使用任何事件侦听器。考虑用户选择“项目1”,然后重新选择“某些消息在这里”的情况。我想这会失败验证。
任何想法?
将默认值存储在变量中,并检查所选值是否等于存储在此变量中的值。我错过了什么? –
不太明白“默认值”是什么意思 - 最初选择的值不包含在列表本身中?无论如何,这就是我会这样做的方式,因为让用户选择任何无效的用户不友好 – kleopatra
@JB Nizet:所以,你说我应该将默认值(作为字符串或int)传递给验证方法本身?这是好的,但看起来好像更优雅:'Validator.isDefault(myComboBox)' –