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

How to create a String with the result of a drop down menu?

我创建了 JFrame window 和 JComboBox。我可以 select 做事,但他们什么都不做。我认为 eventString,但事实并非如此。解决方案是什么?

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);
    }
}

您需要获取所选项目(在您的情况下是 String)并将其与您的字符串进行比较 equals:

if ("b.png".equals(event.getItem()))

请注意,这优于

event.getItem().equals("b.png")

因为这理论上可以抛出 NPE。

此外,使用通用类型:JComboBox<String>,而不是原始类型。