2015-03-30 87 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