2016-12-25 65 views
0

即时尝试使用Observable List中的对象填充组合框,但在ComboBox中,它向我展示了其他内容。使用ObservableList中的对象填充ComboBox时出现问题

代码:

@FXML 
    private ComboBox<Veturat> box; 
ObservableList<Veturat> lista = FXCollections.observableArrayList(); 

public void addToComboBox() throws SQLException, ClassNotFoundException 
    { 
     box.getItems().clear(); 
     Class.forName("com.mysql.jdbc.Driver"); 
     String url = "jdbc:mysql://**.***.**.***/*****"; 
     String user = "******"; 
     String pass = "***********"; 
     connect = (Connection) DriverManager.getConnection(url, user, pass); 
     Statement statement; 
     String sql = "Select * from veturattable"; 
     statement = connect.createStatement(); 
     ResultSet rs = statement.executeQuery(sql); 

     while(rs.next()) 
     { 
      int id = rs.getInt("id"); 
      String vetura = rs.getString("vetura"); 
      String modeli = rs.getString("modeli"); 
      int km = rs.getInt("km"); 
      double qmimi = rs.getDouble("qmimi"); 
      String ngjyra = rs.getString("ngjyra"); 
      String targa = rs.getString("targa"); 

      veturat = new Veturat(id,vetura,modeli,km,qmimi,ngjyra,targa); 
      lista.add(veturat); 
     } 

     box.getItems().addAll(lista); 
     rs.close(); 
     connect.close(); 
    } 

这里是它看起来在组合框:

enter image description here

有人可以帮我吗?

回答

0

问题是我没有在Veturat类中覆盖toString()方法。

+1

这工作,但有更好的解决方案:http://stackoverflow.com/questions/10699655/combo-box-key-value-pair-in-javafx-2 – Omid