Java ItemListener println双输出 jbox.addItemListener(新的ItemListener(){ @凌驾 公共无效itemStateChanged(ItemEvent e){ 对于(int x=0;x
当我运行这个时,它会打印两次。 我做错了什么?Java ItemListener println双输出 jbox.addItemListener(新的ItemListener(){ @凌驾 公共无效itemStateChanged(ItemEvent e){ 对于(int x=0;x,java,swing,println,itemlistener,Java,Swing,Println,Itemlistener,当我运行这个时,它会打印两次。 我做错了什么? (很抱歉我的英语不好)由于一个项目被取消选择,另一个项目被选择,ItemListener将跳闸两次。考虑使用ActualListInter。 但是请注意,您不应该使用==或来比较字符串=。请改用equals(…)或equalsIgnoreCase(…)方法。了解==检查两个对象是否相同,这不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这就是这里的问题所在。所以不是 jbox.addItemListener(new It
(很抱歉我的英语不好)由于一个项目被取消选择,另一个项目被选择,ItemListener将跳闸两次。考虑使用ActualListInter。 但是请注意,您不应该使用
==
或来比较字符串=代码>。请改用equals(…)
或equalsIgnoreCase(…)
方法。了解==
检查两个对象是否相同,这不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这就是这里的问题所在。所以不是
jbox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
for (int x = 0; x < string.length; x++) {
if (jbox.getSelectedItem() == string[x]) {
System.out.println(string[x]);
}}}});
做
非常感谢。现在可以正常打印了。别忘了使用这个网站的搜索功能。例如,它会给你带来有益的结果。
if (jbox.getSelectedItem() == string[x]) {
if (jbox.getSelectedItem().equals(string[x])) {