如何使用下拉菜单的结果创建一个String?

时间:2016-01-09 18:36:20

标签: java swing jframe jcombobox itemlistener

我创建了一个JFrame窗口,其中包含JComboBox。我可以选择但他们什么都不做。我认为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);
    }
}

1 个答案:

答案 0 :(得分:2)

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

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

请注意,这比

更可取
event.getItem().equals("b.png")

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

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