Java 选择组合框中的任何项目时,将内容写入文本字段

Java 选择组合框中的任何项目时,将内容写入文本字段,java,string,swing,jcombobox,string-comparison,Java,String,Swing,Jcombobox,String Comparison,当我从组合框中选择任何项目时,我想在文本字段中写入一些内容。但我不能这么做 Java代码: comboBox.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent arg0) { if(comboBox.getSelectedItem()=="apple") { tfbf.setText("apple selected");

当我从组合框中选择任何项目时,我想在文本字段中写入一些内容。但我不能这么做

Java代码:

comboBox.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent arg0) {
            if(comboBox.getSelectedItem()=="apple") {
                tfbf.setText("apple selected");
            }
        }
    });

因为你没有提供任何有效的例子。您将对象观测相等性与
相等(..)
进行比较,而不是与
=
进行比较

"apple".equals(comboBox.getSelectedItem())
阅读更多

=
测试引用相等性

.equals()
测试值是否相等

最好写为:

comboBox.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent arg0)
    {
        tfbf.setText(comboBox.getSelectedItem() + " selected");
    }
});

你可以将对象相等与
相等进行比较<代码>=
如果它们指向同一个引用,则只比较引用object@assylias我不理解你的评论。你指的是我还是OP?当然,我添加了Swing标签。我通过使用
itemstener
暗示了Swing。Java FX是否也使用了
ItemListener
?出于某种原因,我认为它是一个JavaFX组合框,但我错了!在JavaFX中,它类似于:
comboBox.addChangeListener(…)
@assylias谢谢!它是基于(社区维基答案)。所以现在它将是
,以便更快地发布MCVT
?@nachokk No。。目前,我坚持目前的做法(我怀疑维基的改变不会被采纳)。非常感谢。我已经用这个代码解决了挑剔的“apple”。equals(comboBox.getSelectedItem())将避免可能出现的NullPointerException+1@MadProgrammer我欣赏尤达风格,但对于这个例子,我认为没有必要,顺便说一句,这里不是凌晨5点吗?@nachokk良好实践使完美,是的…@Madcommer ok我编辑过
comboBox.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent arg0)
    {
        tfbf.setText(comboBox.getSelectedItem() + " selected");
    }
});