1

私はコンボボックスを埋めるこのメソッドを持っています:

public DefaultComboBoxModel llenarComboFamilia() throws SQLException {
    String query = "select * from familias";
    DefaultComboBoxModel df = new DefaultComboBoxModel();
    abrirConexion();
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next()) {
        //df.addElement(rs.getObject("This is the ID I need"));
        df.addElement(rs.getString("String from DB"));
    }
    cerrarConexion();
    return df;
}

次に、次のものをロードします。

jComboBox2.setModel(con.llenarComboFamilia());

そして、「登録」ボタンをクリックすると、次のようになります。

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    Persona p = new Persona(jTextField7.getText(), 1, 
            jComboBox2.getSelectedIndex() + 1, 
            jTextField5.getText(), jTextField6.getText());

    con.insertarPersonasProp(p);

}

しかしjComboBox2.getSelectedIndex() + 1、選択したインデックスではなく、データベースからの ID 値が必要なため、うまくいきません。

何か案は?

4

2 に答える 2

0

SQL クエリの「Id」フィールドと「Description」フィールドの両方を含むカスタム オブジェクトを作成します。次に、このオブジェクトをコンボボックスに追加し、カスタム レンダラーを使用します。

詳細とサンプル コードについては、カスタム レンダラーを使用したコンボ ボックスを参照してください。

于 2014-04-29T21:14:19.960 に答える
0

ベクターを使用して ID を格納できます。アイテムをコンボボックスに追加するときに、各アイテムの ID をベクターに入力するだけです。ベクターとコンボボックスはどちらも同じ数のアイテムを持つため、コンボボックスのアイテム 10 の ID はベクターのアイテム 10 になります。次に、 vectorIDs.get( jComboBox2.getSelectedIndex () ) のようなベクトルからコンボボックスで現在選択されているアイテムの ID を取得できます。

于 2014-04-28T21:54:30.617 に答える