Java 如何使用下拉菜单的结果创建字符串?

Java 如何使用下拉菜单的结果创建字符串?,java,swing,jframe,jcombobox,itemlistener,Java,Swing,Jframe,Jcombobox,Itemlistener,我用一个JComboBox创建了一个JFrame窗口。我可以选择一些事情,但他们什么都不做。我以为事件是一个字符串,但它不是。解决这个问题的办法是什么 import java.awt.FlowLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JC

我用一个
JComboBox
创建了一个
JFrame
窗口。我可以选择一些事情,但他们什么都不做。我以为
事件
是一个
字符串
,但它不是。解决这个问题的办法是什么

import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Gui extends JFrame {
    private JComboBox box;
    private JLabel picture;

    private static String[] filename = {"", "b.png", "x.png"};

    public Gui() {
        super("the title");
        setLayout(new FlowLayout());
        box = new JComboBox(filename);
        box.addItemListener(
                new ItemListener() {
                    public void itemStateChanged(ItemEvent event) {
                        if(event.getStateChange()==ItemEvent.SELECTED){
                            System.out.println("test");
                            if(event=="b.png") {
                                System.out.println("test2");
                            }
                        }
                    }
                });
        add(box);
    }
}

您需要获取所选项目(在您的案例中是
字符串
),并将其与
等于的字符串进行比较:

if ("b.png".equals(event.getItem()))
请注意,这比

event.getItem().equals("b.png")
因为从理论上讲,这可以抛出一个NPE


另外,请使用泛型类型:
JComboBox
,而不是原始类型。

比较
String
s与
equals
,而不是
=
。您的意思是:if(event.equals(“b.png”){@HovercraftFullOfEels我不确定这是否完全重复,因为OP缺少
event.getItem()的Swing相关步骤
。毕竟,他们说他们对
事件
不是
字符串
有问题。我知道,我对这个网站网络很有经验,而且我在提问时也很害怕,因为有一些人投了反对票。我建议你忽略分数,专注于解决你的问题。这个网站的问答远远不够完美旁白。@Woutuygens,不要当面接受否决票。这里没有人认识你。投票只适用于问题和答案。通过熟悉问题指南,你将最小化否决票(当然,有些人只是粗鲁和不公平,所以不要让这让你沮丧。这只是生活的一部分)。以下是一些可能对您有所帮助的链接:和。祝您好运!