I am a newbie in JavaFX and also in java. Guys can you please figure out this code if what is lacking because I can already print the items from the database using the println function.
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;
}
And this is the FXML File:
<?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>
What do Am I Lacking? Please help me guys..
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…