2016-05-17 2 views
0

Ich bearbeite meine Tabellenansicht von der MySQL-Datenbank, aber nur die Spalten-ID ist die einzige, die gefüllt ist.nur eine Spalte wurde in meinem Tableview ausgefüllt

mein Haupt:

 public void populate() throws Exception{ 

    ObservableList<userdata1> data = FXCollections.observableArrayList(); 

    tableView(); 

    try{ 
      String query = "select * from members";   
      ps = new Connect().connectDatabase1(); 
      rs = ps.executeQuery(query);   
      while(rs.next()){    
      data.add(new userdata1(rs.getInt(1),rs.getString(2),rs.getInt(3)));    
      tblView.setItems(data); 
      } 


     }catch(Exception e){ 
      System.out.print("asdqweasd"); 

     } 
} 


     public void tableView()throws Exception{    
     tblView.getItems().clear();   
     tblView.getColumns().clear(); 
     rs = ps.executeQuery("SELECT * FROM members");  
     ObservableList<userdata1> data = FXCollections.observableArrayList();  
     TableColumn column1 = new TableColumn("ID");  
     column1.setMinWidth(85);  
     column1.setCellValueFactory(new javafx.scene.control.cell.PropertyValueFactory<>("ID"));   
     TableColumn column2 = new TableColumn("Name"); 
     column2.setMinWidth(565); 
     column2.setCellValueFactory(new javafx.scene.control.cell.PropertyValueFactory<>("comp_name")); 
     TableColumn column3 = new TableColumn("STATUS");  
     column3.setMinWidth(123);  
     column3.setCellValueFactory(new javafx.scene.control.cell.PropertyValueFactory<>("mem_status")); 



     tblView.getColumns().addAll(column1,column2,column3);  

    }  

mein userdata1:

public class userdata1 { 
    public SimpleIntegerProperty ID; 
    public SimpleStringProperty comp_name; 
    public SimpleIntegerProperty mem_status; 

    public userdata1(Integer id, String comp_name, Integer mem_status){ 
      this.ID = new SimpleIntegerProperty(id); 
      this.comp_name = new SimpleStringProperty(comp_name); 
      this.mem_status = new SimpleIntegerProperty(mem_status); 

     } 
    public Integer getID() { 
      return ID.get(); 
     } 

      public String getcomp_name(){ 
      return comp_name.get(); 
     } 

     public Integer getmem_status() { 
      return mem_status.get(); 
     } 


     public void setID(Integer id) { 

      this.ID.set(id); 
     } 

     public void setcomp_name(String comp_name) { 
      this.comp_name.set(comp_name); 
     } 

     public void setmem_status(Integer mem_status) { 

      this.mem_status.set(mem_status); 
     } 
} 

die Daten mem_status und comp_name nicht ihre jeweiligen Spalten bevöl

Antwort

0

Wie UserData1 enthält bereits Properties können Sie einstellen, die nach Property zu cellValueFactory:

public class UserData1 { 
    private StringProperty comp_name; 
    //additional fields, getters and setters 

    public StringProperty comp_nameProperty() { 
     return comp_name; 
    } 
} 


setCellValueFactory(cellData -> cellData.getValue().comp_nameProperty()); 

Wenn Sie auf die PropertyValueFactory Sie die Felder nach der Konvention Zugang Camelcase müssen bleiben:

column2.setCellValueFactory(new PropertyValueFactory<>("comp_name")); 


public class UserData1 { 
    //... 
    public String getComp_name(){ 
      return comp_name.get(); 
    } 
} 
+0

danke .. die Camelcase-Konvention in meinem Getter ist das einzige Problem .. :)) Ich schätze deine Antwort sehr .. danke sehr :) –

+0

Ich dachte nur, dass die Verwendung von Unterstreichung in meinem getComp_Name nicht das Problem in Getter sein wird, aber es scheint, dass der Unterstrich als Verbindung zu einem Wort gelesen wurde und es zu einem macht. (Korrigieren Sie mich, wenn ich solche Begriffe nicht falsch verwende). Die Änderung von getComp_Name zu getComp_name ist die Lösung für dieses Problem. tnx wieder Leute –

Verwandte Themen