2014-04-28 273 views
1

我有這種方法,填補了我的組合框:從組合框中選擇項目時,如何從數據庫獲取ID值?

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值,而不是選定的索引。

任何想法?

回答

0

你可以使用Vector來存儲ID。只需在將項目添加到組合框中時使用每個項目的ID填充矢量。矢量和組合框將具有相同數量的項目,因此組合框中的項目10的id將是項目10中的矢量。那麼你就可以得到組合框當前選擇從矢量像vectorIDs.get項目的ID( jComboBox2.getSelectedIndex ())

0

創建一個自定義對象同時包含了「ID」和「說明」從你的領域SQL查詢。然後將此對象添加到組合框並使用自定義渲染器。

有關更多信息和示例代碼,請參閱Combo Box With Custom Renderer

相關問題