0

重複の可能性:
動的JComboBoxes

私はJavaプログラムの初心者です。コンボボックスに関するプログラムでこの問題が発生しました。3つのコンボボックス(cbxType、cbxItem、およびcbxColor)があります。2番目のコンボボックス(cbxItem)のアイテムリストが最初のコンボボックス(type)に基づいて変更され、次に3番目のコンボボックス(cbxColor)のアイテムリストが2番目のコンボボックス(cbxItem)で選択されたアイテムに基づいて変更されるようにします。私は自分のコードでこの問題を解決しようとしています。最初のコンボボックスが変更された場合、2番目のコンボボックスは正常に機能しますが、変更後、3番目のコンボボックスにはアイテムが表示されません。これが私のコードです。あなたの助けてくれてありがとう、そして私の悪い英語をお詫びします。

    private void viewCbxType(){
    String sql;


try {
    sql ="Select distinct productItem from Product ";
    if(cbxType.getSelectedItem() != "<<Product Type>>"){

        String prType = cbxType.getSelectedItem().toString();

        sql ="Select distinct productItem from Product WHERE productType='" +prType+"'";



            cbxItem.removeAllItem();
            cbxItem.setSelectedIndex(0);
        }
    }


    PreparedStatement st = conn.prepareStatement(sql);
    ResultSet rs =st.executeQuery();



    while (rs.next()) {
        String prItem = rs.getString("productItem");

        cbxItem.addItem(prItem);

    }
}catch (SQLException se) {}
}

最初のコンボボックスに対してactionPerformedでそのメソッドを呼び出し、2番目のコンボボックスと同様にします

4

1 に答える 1

0

コンボ ボックスにアクション リスナーを実装できます。

public class ComboBoxDemo ... implements ActionListener {
    . . .
        petList.addActionListener(this) {
    . . .
    public void actionPerformed(ActionEvent e) {
        JComboBox cb = (JComboBox)e.getSource();
        String petName = (String)cb.getSelectedItem();
        updateLabel(petName);
    }
    . . .
}

このアクション リスナーは、コンボ ボックスから新しく選択された項目を取得し、それを使用して画像ファイルの名前を計算し、ラベルを更新して画像を表示します。ユーザーがコンボ ボックスのメニューから項目を選択すると、コンボ ボックスはアクション イベントを発生させます。アクション リスナーの実装に関する一般的な情報については、アクション リスナーの作成方法を参照してください。

http://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html

これもあなたを助けることができます

http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html

于 2012-11-28T18:02:46.690 に答える