如何用下拉菜单的结果创建一个字符串?
How to create a String with the result of a drop down menu?
我创建了 JFrame
window 和 JComboBox
。我可以 select 做事,但他们什么都不做。我认为 event
是 String
,但事实并非如此。解决方案是什么?
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>
,而不是原始类型。
我创建了 JFrame
window 和 JComboBox
。我可以 select 做事,但他们什么都不做。我认为 event
是 String
,但事实并非如此。解决方案是什么?
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>
,而不是原始类型。