TableView in JavaFX mit TableView füllen, das in FXML-Datei erstellt wurde

Ich bin ein Neuling in JavaFX und auch in Java. Jungs, könnt ihr bitte diesen Code herausfinden, wenn etwas fehlt, weil ich die Gegenstände bereits mit der Funktion println aus der Datenbank drucken kann.

public class TableViewController  implements Initializable{

@FXML
private TableView<studentInfo> tblViewer = new TableView<studentInfo>();
@FXML
private TableColumn colID = new TableColumn();
@FXML
private TableColumn colName = new TableColumn();
@FXML
private TableColumn colAddress = new TableColumn();
@FXML
private TableColumn colAge = new TableColumn();
@FXML
private TableColumn colContact = new TableColumn();
@FXML
private Button cmdTest;

@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
System.out.println("READ");
System.out.println(this.getClass().getSimpleName() + ".initialize"); 
cmdTest.setOnAction(new EventHandler<ActionEvent>() {            
    @Override
    public void handle(ActionEvent event) {
    System.out.println("Button Pressed");                   
    colID.setCellValueFactory(new PropertyValueFactory<studentInfo, Integer>("id"));
    colName.setCellValueFactory(new PropertyValueFactory<studentInfo, String>("name"));
    colAddress.setCellValueFactory(new PropertyValueFactory<studentInfo, String>("address"));
    colAge.setCellValueFactory(new PropertyValueFactory<studentInfo, Integer>("age"));
    colContact.setCellValueFactory(new PropertyValueFactory<studentInfo, String>("contact_num"));
    tblViewer.getItems().setAll(getAllstudentInfo());
    //tblViewer.getColumns().addAll(colID, colName, colAddress, colAge, colContact);
    //System.out.println(tblViewer.getItems().setAll(getAllstudentInfo()));
    }
} );       
}

public class studentInfo{

private final SimpleIntegerProperty idCol;
private final SimpleStringProperty nameCol;
private final SimpleStringProperty addressCol;
private final SimpleIntegerProperty ageCol;
private final SimpleStringProperty contact_numCol;

public studentInfo(Integer id, String name, String address, Integer age, String contact_num){
    this.idCol = new SimpleIntegerProperty(id);
    this.nameCol = new SimpleStringProperty(name);
    this.addressCol = new SimpleStringProperty(address);
    this.ageCol = new SimpleIntegerProperty(age);
    this.contact_numCol = new SimpleStringProperty(contact_num);
  }  
  public Integer getidCol(){
      return idCol.get();
  }
  public void setidCol(Integer id){
      idCol.set(id);      
  }
  public String getnameCol(){
      return nameCol.get();
  }
  public void setnameCol(String name){
      nameCol.set(name);
  }
  public String getaddressCol(){
      return addressCol.get();
  }
  public void setaddressCol(String address){
      addressCol.set(address);
  }
  public Integer getageCol(){
      return ageCol.get();
  }
  public void setageCol(Integer age){
      ageCol.set(age);
  }
  public String getcontact_numCol(){
      return contact_numCol.get();
  }
  public void setcontact_numCol(String contact_num){
      contact_numCol.set(contact_num);
  }        
  }


public List<studentInfo> getAllstudentInfo(){
Connection conn;
List ll = new LinkedList();
Statement st;
ResultSet rs;
String url = "jdbc:mysql://localhost/java_test";
String user = "root";
String pass = "";
String driver = "com.mysql.jdbc.Driver";

try{
    Class.forName(driver);
    conn = DriverManager.getConnection(url, user, pass);
    st = conn.createStatement();
    String recordQuery = ("Select * from student");            
    rs = st.executeQuery(recordQuery);
    while(rs.next()){    
        Integer id = rs.getInt("id");
        String name = rs.getString("name");
        String address = rs.getString("address");
        Integer age = rs.getInt("age");
        String contact_num = rs.getString("contact_num");
        ll.add(new studentInfo(id, name, address, age, contact_num));
        System.out.println(id +","+ name +","+ address +","+ age +","+ contact_num +" "+"added.");
    }            
}catch(ClassNotFoundException | SQLException ex){
    Logger.getLogger(TableViewController.class.getName()).log(Level.SEVERE, null, ex);
}
return ll;
}

Und das ist die FXML-Datei:

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<AnchorPane id="AnchorPane" prefHeight="594.0" prefWidth="838.0" xmlns:fx="http://javafx.com/fxml" fx:controller="loadingcsvtotableview.TableViewController">
<children>
<TableView fx:id="tblViewer" prefHeight="521.0" prefWidth="808.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="15.0" AnchorPane.rightAnchor="15.0" AnchorPane.topAnchor="59.0">
  <columns>
    <TableColumn prefWidth="75.0" text="ID" fx:id="colID" />
    <TableColumn prefWidth="175.0" text="Name" fx:id="colName" />
    <TableColumn prefWidth="330.0" text="Address" fx:id="colAddress" />
    <TableColumn prefWidth="75.0" text="Age" fx:id="colAge" />
    <TableColumn prefWidth="150.0" text="Contact Number" fx:id="colContact" />
  </columns>
 </TableView>
 <Button fx:id="cmdExport" layoutX="14.0" mnemonicParsing="false" prefHeight="30.0" prefWidth="112.0" text="Export Data" AnchorPane.topAnchor="21.0" />
 <Button fx:id="cmdClose" layoutX="144.0" mnemonicParsing="false" prefHeight="30.0" prefWidth="112.0" text="Close" AnchorPane.topAnchor="21.0" />
 <Button id="cmdClose" fx:id="cmdTest" layoutX="386.0" layoutY="21.0" mnemonicParsing="false" prefHeight="30.0" prefWidth="112.0" text="Test" />
 </children>
</AnchorPane>

Was fehlt mir? Bitte helfen Sie mir, Jungs ..

Antworten auf die Frage(2)

Ihre Antwort auf die Frage