2015-03-30 91 views
0

我試圖從數據庫中檢索數據並自動設置jTextFields。基於ComboBox值設置字段Java

我設法檢索名稱的表列並將其設置爲combobox

但現在我希望與選定項目相關的所有內容都能自動顯示在jTextfields中。

我試着下面的代碼,但沒有被認可的setString錯誤:

private void jComboBox1PopupMenuWillBecomeInvisible(javax.swing.event.PopupMenuEvent evt) {               
     String tmp = (String)jComboBox1.getSelectedItem(); 
     String SQL = "select * from ROOT.\"Books\" WHERE Name=?"; 

     try{ 
    String host = "jdbc:derby://localhost:1527/books"; 
    String userName = "root"; 
    String Pass = "1234"; 
    Connection con = DriverManager.getConnection(host, userName, Pass); 
    Statement stmnt = (Statement) con.createStatement(); 
    stmnt.setString(1, tmp); 
    ResultSet rs = stmnt.executeQuery(SQL); 

    if (rs.next()) 
     { 
      String add1 = rs.getString("Year"); 
      jTextField1.setText(add1); 
      String add2 = rs.getString("Price"); 
      jTextField2.setText(add2); 
     } 

} catch (Exception e) { 
    e.printStackTrace(); 
} 
    }  
+0

「不起作用」不是問題陳述。請在描述發生了什麼問題時儘可能具體。 – tnw 2015-03-30 19:43:48

+0

'我們在這裏遇到錯誤:'再次出現錯誤對我們來說毫無意義。我們不介意讀者。我們不知道你得到了什麼樣的錯誤。按照建議修復您的代碼並使用ActionLIstener。顯示彈出窗口時,您可能沒有選定的項目。如果您仍有問題,請使用正確的代碼更新問題。 – camickr 2015-03-30 19:54:48

+0

''語句'類中不存在'setString(int,String)'......也許你的意思是['PreparedStatement'](http://docs.oracle.com/javase/8/docs/api/的Java/SQL/PreparedStatement.html#了setString-INT-java.lang.String-)? – Obicere 2015-03-30 19:55:08

回答

1

我唯一能說的東西,是不使用PoupMenuListener。

當用戶從組合框中進行選擇時,您應該使用和ActionLIstenerItemListener來處理事件。

閱讀有關How to Use Combo Boxes的Swing教程的部分以獲取更多信息和工作示例。

+0

那麼我拿出代碼並將其設置爲它自己的方法,仍然不會填充。 – 2015-03-30 19:47:00

+0

@JamesSmith,不知道你的評論意味着什麼。你還沒有描述你的問題。問題是SQL,查詢還是什麼。解決你的問題並閱讀教程,並從一個工作示例開始。 – camickr 2015-03-30 19:48:40

+0

我在這裏得到錯誤:stmnt.setString(1,tmp); – 2015-03-30 19:48:42