我的表格視圖無法顯示數據。它在控制檯中顯示結果集數據,但無法在tableview javafx中顯示。請幫忙。javafx Tableview不顯示數據庫中的數據
類RoomDetails
package application;
public class RoomDetails<object> {
rmlist rmList = new rmlist();
getroom getRoom = new getroom();
@FXML
private Button btnRoom_add;
@FXML
private Button btnRoom_update;
@FXML
private Button btnRoom_del;
@FXML
private TableView<ListRoom> tblroomdetails;
@FXML
private TableColumn<object, Object> tblroomno;
@FXML
private TableColumn<object, Object> tblroomtype;
@FXML
private TableColumn<object, Object> tblac;
@FXML
private TableColumn<object, Object> tbltariff;
@FXML
private TableColumn<object, Object> tblstatus;
@FXML
private Label lblRoomdetails;
Dbconnection dbcon = new Dbconnection();
Connection con;
PreparedStatement pst;
ResultSet rs;
@FXML
public void btnRoom_addonAction(ActionEvent event) throws IOException{
FXMLLoader fXMLLoader = new FXMLLoader();
fXMLLoader.setLocation(getClass().getResource("/application/AddRoom.fxml"));
try{
fXMLLoader.load();
Parent parent = fXMLLoader.getRoot();
Scene scene = new Scene(parent);
scene.setFill(new Color(0, 0, 0, 0));
AddRoom addRoom = fXMLLoader.getController();
addRoom.lbl_Add_Room.setText("ADD Room");
Stage stage = new Stage();
stage.setScene(scene);
stage.initModality(Modality.APPLICATION_MODAL);
stage.initStyle(StageStyle.TRANSPARENT);
stage.show();
}
catch(IOException e){
e.printStackTrace();
}
}
public void viewDetails() {
tblroomdetails.setItems(rmList.roomlist);
getRoom.rmview(rmList);
tblroomno.setCellValueFactory(new PropertyValueFactory<>("roomno"));
tblroomtype.setCellValueFactory(new PropertyValueFactory<>("rmtype"));
tblac.setCellValueFactory(new PropertyValueFactory<>("acstat"));
tbltariff.setCellValueFactory(new PropertyValueFactory<>("rmtariff"));
tblstatus.setCellValueFactory(new PropertyValueFactory<>("rmstatus"));
}
}
類getroom
package application;
public class getroom {
Dbconnection dbcon = new Dbconnection();
Connection con;
PreparedStatement pst;
ResultSet rs;
public void rmview(rmlist rmList) {
con = dbcon.geConnection();
try{
pst = con.prepareStatement("select * from room");
rs = pst.executeQuery();
System.out.println(rs);
while (rs.next()){
rmList.roomno = rs.getString(1);
rmList.rmtype = rs.getString(2);
rmList.acstat = rs.getString(3);
rmList.rmtariff = rs.getString(4);
rmList.rmstatus = rs.getString(5);
}
rs.close();
pst.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
類ListRoom
package application;
public class ListRoom {
public String roomno;
public String rmtype;
public String acstat;
public String rmtariff;
public String rmstatus;
public ListRoom(String roomno, String rmtype, String acstat, String rmtariff, String rmstatus) {
super();
this.roomno = roomno;
this.rmtype = rmtype;
this.acstat = acstat;
this.rmtariff = rmtariff;
this.rmstatus = rmstatus;
}
public String getRoomno() {
return roomno;
}
public void setRoomno(String roomno) {
this.roomno = roomno;
}
public String getRmtype() {
return rmtype;
}
public void setRmtype(String rmtype) {
this.rmtype = rmtype;
}
public String getAcstat() {
return acstat;
}
public void setAcstat(String acstat) {
this.acstat = acstat;
}
public String getRmtariff() {
return rmtariff;
}
public void setRmtariff(String rmtariff) {
this.rmtariff = rmtariff;
}
public String getRmstatus() {
return rmstatus;
}
public void setRmstatus(String rmstatus) {
this.rmstatus = rmstatus;
}
}
類rmlist
package application;
public class rmlist {
public String roomno;
public String rmtype;
public String acstat;
public String rmtariff;
public String rmstatus;
public ObservableList<ListRoom> roomlist = FXCollections.observableArrayList();
}
類DBConnection的
package application;
class DBconnection{
public Connection con;
String username = "root";
String password = "123456";
String driverclass = "com.mysql.jdbc.Driver";
String db_url = "jdbc:mysql://localhost:3306/";
String unicode= "?useUnicode=yes&characterEncoding=UTF-8&useSSL=false";
public Connection mkDataBase() throws SQLException{
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(db_url, username, password);
} catch (Exception e){
}
return con;
}
public Connection geConnection(){
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(db_url+"hotel"+unicode, username, password);
} catch (ClassNotFoundException | SQLException ex) {
System.out.println("Too Many Connection");
}
return con;
}
}
什麼是'Dbconnection'? –
@James_D這可能是缺少的類定義:)) – NwDev
我永遠不會明白爲什麼需要幫助的人不能花時間確定他們的問題是否合理。 –