2 つのコンボボックスを含む gui クラスと、2 つのコンボボックスをリッスンするリスナー クラスの 2 つのクラスがあります。ソフトウェアはピザに関するもので、コンボボックスはピザの種類と数量を選択するものです。関連するコードを投稿します。
(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);
}
リスナークラスでは、私は立ち往生しており、まだ解決策を見つけることができていません. ActionListener を使用する必要がありますが、2 つのコンボボックスをどのように区別するつもりなのかわかりません。
(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;
}
要約すると、2 つの JComboBox で値を選択するときに、選択した chooseItem JComboBox アイテムを「説明」文字列に格納し、選択した数量 JComboBox アイテムを「数量」文字列に格納できるようにしたいと考えています。
現在、chooseItem JComboBox の選択項目は両方の値として表示され、数量はまったく表示されません。(これは実際には、最後に使用されたボックスが説明文字列に表示され、数量が null を指す前と同じように進行しています。)
私がオンラインで見つけることができたすべての例は、単一の JComboBox を持つ ActionListener のみを含みます。私はそれを何時間も機能させようとしましたが、運がなく、完全に立ち往生しています。