像这样我可以从ComboBox输出所选的值..
public static String selectedString(ItemSelectable is) {
Object selected[] = is.getSelectedObjects();
return ((selected.length == 0) ? "null" : (String)selected[0]);
}
public static void main(String[] args) {
// Add ActionListener
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
ItemSelectable is = (ItemSelectable)actionEvent.getSource();
String name=selectedString(is);
System.out.println(name);
}
};
// Add Actionlistener to ComboBox kundeAuswahl
kundeAuswahl.addActionListener(actionListener);
// i wanna have the value of name for use here:
// String test[] = getChildAsArray("kunde","projekt",name);
}
但我想从这个函数中获取Value name ,通常我使用return,但是这给了我一个错误。那么我该如何做呢?
答案 0 :(得分:1)
使用类变量。
class Abc{
String itemname
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
ItemSelectable is = (ItemSelectable)actionEvent.getSource();
String name=selectedString(is);
itemname=name;
System.out.println(name);
}
}
// use itemname in class
}
答案 1 :(得分:1)
您应该了解在ComboBox
中选择某些内容是事件:事件发生时执行事件处理程序。但是,在创建组合框时执行示例的最后几行。
因此,name
当时不可用。但是,您可以从事件处理程序中调用您喜欢的任何函数:
public static void main(String[] args) {
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
ItemSelectable is = (ItemSelectable)actionEvent.getSource();
String name=selectedString(is);
doSomethingWithName(name);
}
};
// Add Actionlistener to ComboBox kundeAuswahl
kundeAuswahl.addActionListener(actionListener);
}
public static void doSomethingWithName(String name) {
String test[] = getChildAsArray("kunde","projekt",name);
// ...
}
答案 2 :(得分:0)
我不确定你想要实现什么,但似乎既是一个类成员变量又是/或者从你的匿名类调用一个类方法就可以了。
此外,由于方法的返回类型为void,因此无法在public void actionPerformed(ActionEvent actionEvent)
上返回字符串。