// 创建TableView对象TableView<Person> tableView = new TableView<>();// 设置列属性TableColumn<Person, String> firstNameCol = new TableColumn<>("First Name");firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));TableColumn<Person, String> lastNameCol = new TableColumn<>("Last Name");lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));// 添加列到TableViewtableView.getColumns().addAll(firstNameCol, lastNameCol);// 通过JDBC连接到数据库Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");// 检索数据并将其存储在Java对象中Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("SELECT * FROM people");ObservableList<Person> data = FXCollections.observableArrayList();while (rs.next()) { Person person = new Person(rs.getString("first_name"), rs.getString("last_name")); data.add(person);}// 将Java对象添加到TableView中以在表格中显示数据tableView.setItems(data);将此代码变为完整可运行代码
时间: 2024-02-13 12:05:35 浏览: 89
javafx tableview鼠标触发更新属性详解
这是一个JavaFX应用程序,需要在JavaFX应用程序的主类中添加此代码。以下是完整可运行的代码示例:
```java
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// 创建TableView对象
TableView<Person> tableView = new TableView<>();
// 设置列属性
TableColumn<Person, String> firstNameCol = new TableColumn<>("First Name");
firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));
TableColumn<Person, String> lastNameCol = new TableColumn<>("Last Name");
lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));
// 添加列到TableView
tableView.getColumns().addAll(firstNameCol, lastNameCol);
// 通过JDBC连接到数据库
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb", "username", "password");
// 检索数据并将其存储在Java对象中
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM people");
ObservableList<Person> data = FXCollections.observableArrayList();
while (rs.next()) {
Person person = new Person(rs.getString("first_name"), rs.getString("last_name"));
data.add(person);
}
// 将Java对象添加到TableView中以在表格中显示数据
tableView.setItems(data);
// 创建场景并将TableView添加到其中
StackPane root = new StackPane();
root.getChildren().add(tableView);
Scene scene = new Scene(root, 400, 400);
// 设置场景并显示主舞台
primaryStage.setTitle("TableView Example");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
请注意,此示例假定已经存在一个名为“mydb”的MySQL数据库,其中包含名为“people”的表。您需要将连接字符串中的“username”和“password”替换为您的MySQL用户名和密码。此示例还需要一个名为“Person”的类,该类具有名为“firstName”和“lastName”的字符串属性及其相应的getter和setter方法,以便将数据加载到Java对象中。
阅读全文