2016-07-19 11 views
-2

Ich versuche, Tabellenansicht zum Zeitpunkt des Ladens zu füllen. Bitte verzeihen Sie, wenn es einen Fehler gibt.javafx tableview nicht in der Lage, Daten während der Initialisierung abzurufen

public class users { 

    public String username; 
    public String FullName; 
    public String password; 
    public String phone; 
    public String email; 
    public String doj; 
    public String city; 
    public String state; 
    public String address; 


    public ObservableList <ListEmply> emplylst = FXCollections.observableArrayList(); 

} 

public class UserDetail { 

    @FXML 
    private ObservableList <ListEmply> emplylst; 
    @FXML 
    private TableView <ListEmply> tbl_employeeview; 
    @FXML 
    private TableColumn<Object, Object> employeename; 

    users User = new users(); 


    Dbconnection dbcon = new Dbconnection(); 
    Connection con; 
    PreparedStatement pst; 
    ResultSet rs; 



    public void showDetails(users User){ 
     con = dbcon.geConnection(); 
     try{ 
     pst = con.prepareStatement("select room_no from room"); 
     rs = pst.executeQuery(); 
     while (rs.next()){ 
     User.emplylst.add(new ListEmply(
       rs.getString(1) 
       )); 

       } 
     System.out.println(rs); 
      rs.close(); 
      pst.close(); 
      con.close(); 
     } catch (SQLException e) { 
      e.printStackTrace(); 
      } 
     } 


    public void usrdetails(){ 
     tbl_employeeview.setItems(emplylst); 
     showDetails(User); 
     employeename.setCellValueFactory(new PropertyValueFactory<>("employeename")); 
     System.out.println(rs); 
    } 


    public void Initializable(URL url, ResourceBundle rb){ 

     usrdetails(); 
    } 
} 

ListEmply Klasse

public class ListEmply { 

    public String employeename; 
    public ListEmply(String employeename) { 
     super(); 
     this.employeename = employeename; 
    } 
    public String getEmployeename() { 
     return employeename; 
    } 
    } 
    public void setEmployeename(String employeename) { 
     this.employeename = employeename; 
    } 
} 
+0

Wie Ihnen vorgeschlagen wurde eine [vorherige Frage] (http://stackoverflow.com/questions/38398050/javafx-tableview-not-showing-data-from-database), sollten Sie folgen [ordnungsgemäße Namenskonventionen] (https: //en.wikipedia. org/wiki/Naming_convention_ (Programmierung) #Java). –

Antwort

1

Wie in der documentation beschrieben, ist die Controller-Methode, die den Controller zu initialisieren aufgerufen wird initialize(...) genannt, nicht Initializable(...):

public void initialize(URL url, ResourceBundle rb){ 

    usrdetails(); 
} 

Wie @fabian in den Kommentaren erwähnt, da man nicht die (Legacy) Schnittstelle Initializable und nicht mit den Parametern implementieren, können Sie die Parameter aus der Methodendefinition weglassen:

public void initialize(){ 

    usrdetails(); 
} 
+0

Stimmt, und ich stimme zu, dass das vorzuziehen ist. Zur Antwort hinzugefügt. –

+0

Ich bekomme einen Fehler bei dieser Zeile tbl_employeeview.setItems (empllst); –

+0

Dann machst du da wahrscheinlich etwas falsch. Hast du 'empllelst' irgendwo initialisiert? Sie können wirklich nicht erwarten, dass irgendjemand in diesem Forum jeden einzelnen Ihrer (wahrscheinlich vielen) Fehler einzeln behebt: Ich beantwortete die Frage, die Sie gepostet haben, warum die Initialisierung nicht stattfand, aber ich kann die Frage nicht zulassen zu degenerieren, um alle Tippfehler einzeln zu korrigieren. Lesen Sie die Fehlermeldung und beheben Sie das Problem entsprechend. –