JavaFx 表格(TableView)的使用

1.FXML中的TableView的构建

//
<TableView fx:id="BasicInformation" prefHeight="349.0" prefWidth="600" stylesheets="@../css/fullpackstyling.css"  HBox.hgrow="ALWAYS">
    <columns>
      <TableColumn fx:id="ID" prefWidth="5.0" text="序号" />
      <TableColumn fx:id="Name" prefWidth="75.0" text="姓名" />
      <TableColumn fx:id="Department" prefWidth="75.0" text="单位" />
      <TableColumn fx:id="Age" prefWidth="75.0" text="年龄"/>
      <TableColumn fx:id="Birthday" prefWidth="75.0" text="出生年月"/>
      <TableColumn fx:id="Reward" prefWidth="75.0" text="奖励"/>
      <TableColumn fx:id="Punishment" prefWidth="75.0" text="处分"/>
   </columns>
    <columnResizePolicy>
        <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
    </columnResizePolicy>
</TableView>

2. Control类中对应的声明

//
@FXML
private TableView<StudentsModel> BasicInformation = new TableView<StudentsModel>();

@FXML
private  TableColumn<StudentsModel, Integer> ID = new TableColumn<StudentsModel, Integer>(
        "序号");
@FXML
private  TableColumn<StudentsModel, String> Name = new TableColumn<StudentsModel, String>(
        "姓名");
@FXML
private  TableColumn<StudentsModel, String> Department = new TableColumn<StudentsModel, String>(
        "单位");
@FXML
private  TableColumn<StudentsModel, Integer> Age = new TableColumn<StudentsModel, Integer>(
        "年龄");
@FXML
private  TableColumn<StudentsModel, Date>  Birthday = new TableColumn<StudentsModel,Date>(
        "出生年月");
@FXML
private  TableColumn<StudentsModel, String> Reward = new TableColumn<StudentsModel, String>(
        "奖励");
@FXML
private  TableColumn<StudentsModel, String> Punishment = new TableColumn<StudentsModel, String>(
        "处分");

3.填充TableColumn中的单元格

//表格中的TableColumn与模型类中属性一一对应
ID.setCellValueFactory(new PropertyValueFactory<>("ID"));
Name.setCellValueFactory(new PropertyValueFactory<>("Name"));
Department.setCellValueFactory(new PropertyValueFactory<>("Department"));
Age.setCellValueFactory(new PropertyValueFactory<>("Age"));
Birthday.setCellValueFactory(new PropertyValueFactory<>("Birthday"));
Reward.setCellValueFactory(new PropertyValueFactory<>("Reward"));
Punishment.setCellValueFactory(new PropertyValueFactory<>("Punishment"));
BasicInformation.setItems(studentsModels);//填充数据
//
public static ObservableList<StudentsModel> studentsModels = FXCollections.observableArrayList();

StudentsModel模型类

//
private int ID;
private String Name;
private String Department;
private int Age;
private Date Birthday;
private String Reward;
private String Punishment;
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 JavaFXTableView 控件,你可以按照以下步骤进行操作: 1. 导入必要的 JavaFX 类: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; import javafx.stage.Stage; ``` 2. 创建 TableView 和相关的 TableColumn 对象: ```java TableView<YourDataClass> tableView = new TableView<>(); TableColumn<YourDataClass, String> column1 = new TableColumn<>("Column 1"); TableColumn<YourDataClass, Integer> column2 = new TableColumn<>("Column 2"); // ... ``` 3. 设置 TableView 的数据源(items): ```java ObservableList<YourDataClass> dataList = FXCollections.observableArrayList(); // 添加数据到 dataList tableView.setItems(dataList); ``` 4. 设置 TableColumn 的单元格值提供器(CellValueFactory): ```java column1.setCellValueFactory(new PropertyValueFactory<>("property1")); column2.setCellValueFactory(new PropertyValueFactory<>("property2")); // ... ``` 其中,"property1" 和 "property2" 是 YourDataClass 中的属性名称,用于获取对应列的数据。 5. 可选:设置 TableColumn 的单元格工厂(CellFactory)来自定义单元格的显示方式。 6. 将 TableColumn 添加到 TableView 中: ```java tableView.getColumns().add(column1); tableView.getColumns().add(column2); // ... ``` 7. 创建 Scene 并将 TableView 放入其中: ```java Scene scene = new Scene(tableView); ``` 8. 创建 Stage 并设置 Scene: ```java Stage stage = new Stage(); stage.setScene(scene); stage.show(); ``` 通过以上步骤,你就可以创建一个基本的 TableView,并在其中显示和操作表格数据了。你可以根据自己的需求,进一步设置 TableView 的其他属性和方法,以满足更复杂的功能要求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值