Java 在gui中已经有一个listener类的实例,它为我创建了一个无限循环。因此,这意味着我必须在我的listener类中添加actionlistener,并将其作为我的listener类的参数,即“chooseItem.addActionListener(l
Java 在gui中已经有一个listener类的实例,它为我创建了一个无限循环。因此,这意味着我必须在我的listener类中添加actionlistener,并将其作为我的listener类的参数,即“chooseItem.addActionListener(l,java,swing,user-interface,jcombobox,actionlistener,Java,Swing,User Interface,Jcombobox,Actionlistener,在gui中已经有一个listener类的实例,它为我创建了一个无限循环。因此,这意味着我必须在我的listener类中添加actionlistener,并将其作为我的listener类的参数,即“chooseItem.addActionListener(listener);”然后我在listener类中预执行actionlistener。我不知道如何在一个类中完成这一切,但仍然将信息传递给侦听器类,而不在其中创建gui实例。对不起,我不太明白你在说什么。如果您担心访问匿名类之外的属性,您应该知道
在gui中已经有一个listener类的实例,它为我创建了一个无限循环。因此,这意味着我必须在我的listener类中添加actionlistener,并将其作为我的listener类的参数,即“chooseItem.addActionListener(listener);”然后我在listener类中预执行actionlistener。我不知道如何在一个类中完成这一切,但仍然将信息传递给侦听器类,而不在其中创建gui实例。对不起,我不太明白你在说什么。如果您担心访问匿名类之外的属性,您应该知道这些属性都可以从匿名类中访问。我设法解决了我的困惑,您的回答让我以一种我知道我必须做什么的方式质疑我的代码。所以谢谢:)干杯,这也帮了我很多忙!干杯,这也帮了我很多忙!
(gui class)
private Listener listen = new Listener();
private JComboBox chooseItem = new JComboBox();
private JComboBox quantity = new JComboBox();
private String[] selection = {"Choose a Pizza","Margherita", "Pepperoni", "Four Seasons", "Chips", "Garlic Bread", "Potato Wedges", "Cocacola", "Orange Juice", "Lemonade"};
private String[] qSelection = {"0","1","2","3","4","5","6","7","8","9","10"};
private void comboBoxs() {
choosePizza = new JComboBox(selection);
chooseItem.setSelectedIndex(0);
panel.add(choosePizza);
choosPizza.addActionListener(listener);
quantity = new JComboBox(qSelection);
quantity.setSelectedIndex(0);
panel.add(quantity);
quantity.addActionListener(listener);
}
(listener class)
public void actionPerformed(ActionEvent event) {
if (actionCommand.equals("Confirm")) {
String q = new String();
String d = new String();
d = description;
q = quantity;
}
else {
JComboBox cbq = (JComboBox)event.getSource();
String itemNumber = (String)cbq.getSelectedItem();
getQuantity(itemNumber);
JComboBox cb = (JComboBox)event.getSource();
String name = (String)cb.getSelectedItem();
getItemName(name);
}
}
public String getItemName(String name) {
description = new String();
description = name;
return name;
}
public String getQuantity(String itemNumber){
quantity = new String();
quantity = itemNumber;
return itemNumber;
}
JComboBox cbq = (JComboBox)event.getSource();
String itemNumber = (String)cbq.getSelectedItem();
getQuantity(itemNumber);
//this returns the same combobox as above, so probably incorrect behavior
JComboBox cb = (JComboBox)event.getSource();
String name = (String)cb.getSelectedItem();
getItemName(name);
if(e.getSource() == gui.chooseItem){
}
else if(e.getSource() == gui.quantity){
}
chooseItem.setActionCommand("itemCB");
quantity.setActionCommand("quantityCB");
if(e.getActionCommand().equals("itemCB")){
}
else if(e.getActionCommand().equals("quantityCB")){
}
String foo;
String bar;
JComboBox fooBox = new JComboBox();
JComboBox barBox = new JComboBox();
fooBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
foo = "Updated";
}
});
barBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
bar = "Updated";
}
});