sách gpt4 ăn đã đi

java - 在 JavaFX 中使用数据库填充 TableView

In lại 作者:太空狗 更新时间:2023-10-29 22:39:21 27 4
mua khóa gpt4 giày nike

我开始学习 javaFX,我需要用我的数据库中的数据填充一个表。我已经在网上阅读了很多代码,但我还没有找到我要找的东西。我读了cái này但我不知道如何实现最后一个功能。我阅读了一些其他代码来做到这一点,到目前为止,这是我的一些代码:

@FXML private TableView table;
@FXML private TableColumn nameCol;
@FXML private TableColumn emailCol;
private ObservableList data;

public void initialize(URL location, ResourceBundle resources) {
nameCol.setCellValueFactory(new PropertyValueFactory(“name”));
emailCol.setCellValueFactory(new PropertyValueFactory(“email”));
buildData();
}
public void buildData() {
Connection connect = new Connection();
Statement st = connect.Connect();
data = FXCollections.observableArrayList();
thử {
ResultSet rs = st.executeQuery("SELECT * FROM USER");
while (rs.next()) {
ObservableList row = FXCollections.observableArrayList();
for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) {
row.add(rs.getString(i));
System.out.println(row);
}
data.add(pol);
}
tabla.setItems(data);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
}

希望你能帮帮我

câu trả lời hay nhất

我相信这会对你有所帮助:

public class DBClass{    
public Connection getConnection() throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection("jdbc:mysql://192.168.0.1:3306/dbname","mysqluser","mysqluserpwd");
}
}

在 Controller 类中执行以下操作:

@FXML
void initialize(){
assert tableview != null : "fx:id=\"tableview\" was not injected: check your FXML file 'UserMaster.fxml'.";
colUserName.setCellValueFactory(
new PropertyValueFactory("userName"));
colPassword.setCellValueFactory(
new PropertyValueFactory("userPassword"));
colUserType.setCellValueFactory(
new PropertyValueFactory("userType"));
colPhoto.setCellValueFactory(
new PropertyValueFactory("userPhoto"));
objDbClass = new DBClass();
thử{
con = objDbClass.getConnection();
buildData();
}
catch(ClassNotFoundException ce){
logger.info(ce.toString());
}
catch(SQLException ce){
logger.info(ce.toString());
}
}

private ObservableList data;

public void buildData(){
data = FXCollections.observableArrayList();
thử{
String SQL = "Select * from usermaster Order By UserName";
ResultSet rs = con.createStatement().executeQuery(SQL);
while(rs.next()){
Usermaster cm = new Usermaster();
cm.userId.set(rs.getInt("UserId"));
Image img = new Image("tailoring/UserPhoto/User"+cm.getUserId().toString()+".jpg");

ImageView mv = new ImageView();
mv.setImage(img);
mv.setFitWidth(70);
mv.setFitHeight(80);
cm.userPhoto.set(mv);
cm.userName.set(rs.getString("UserName"));
cm.userPassword.set(rs.getString("UserPassword"));
cm.userType.set(rs.getString("UserType"));
data.add(cm);
}
tableview.setItems(data);
}
catch(Exception e){
e.printStackTrace();
System.out.println("Error on Building Data");
}
}

并为每个要使用 TableView 操作的实体(表)创建一个单独的 Java 文件 POJO

public class Usermaster{    

public SimpleIntegerProperty userId = new SimpleIntegerProperty();
public ObjectProperty userPhoto = new SimpleObjectProperty();
public SimpleStringProperty userName = new SimpleStringProperty();
public SimpleStringProperty userPassword = new SimpleStringProperty();
public SimpleStringProperty userType = new SimpleStringProperty();
public SimpleStringProperty encPass = new SimpleStringProperty();
public SimpleStringProperty updt = new SimpleStringProperty();
public SimpleStringProperty uptm = new SimpleStringProperty();

public Integer getUserId() {
return userId.get();
}

public Object getUserPhoto() {
return userPhoto.get();
}

public String getUserName() {
return userName.get();
}

public String getUserPassword() {
return userPassword.get();
}

public String getUserType() {
return userType.get();
}

public String getEncPass() {
return encPass.get();
}

public String getUpdt() {
return updt.get();
}

public String getUptm() {
return uptm.get();
}
}

我已经测试过这个程序,它运行良好。

关于java - 在 JavaFX 中使用数据库填充 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18497699/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress