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,不要当面接受否决票。这里没有人认识你。投票只适用于问题和答案。通过熟悉问题指南,你将最小化否决票(当然,有些人只是粗鲁和不公平,所以不要让这让你沮丧。这只是生活的一部分)。以下是一些可能对您有所帮助的链接:和。祝您好运!