JavaFX TableView为表格添加序号

	用JavaFX 做PC客户端时,TableView 是我经常用的一个组件,但它不能设置自动生成序号,没有序号看着又非常不习惯,通过一个简单的类;方便在多个TableView中方便的生成序号;

public class IDCell<S,T> implements Callback<TableColumn<S,T>, TableCell<S,T>> {

@Override
public TableCell<S, T> call(TableColumn<S, T> param) {
	
	TableCell cell=new TableCell() {
			@Override
			protected void updateItem(Object item, boolean empty) {
				super.updateItem(item, empty);
                this.setText(null);
                this.setGraphic(null);
                if (!empty) {
                        int rowIndex = this.getIndex() + 1;
                        this.setText(String.valueOf(rowIndex));
                }
			}
			
		};
	return cell;
}

}

我开始是通过给TableColumn通过Lambda表达式传入Callback<TableColumn<S,T>, TableCell<S,T>>的,但项目中有多个TableView 是每次都要写一遍,所有还是建一个类方便些,而且代码也简洁好多;只要在TableView中添加一个序号列,然后给这个列设置;
public void loadTable(List employeeList) {
ObservableList employeeData=FXCollections.observableArrayList();
employeeData.addAll(employeeList);
tablePane.setItems(employeeData);
col_NO.setCellFactory(new IDCell<>()); //通过这个类实现自动增长的序号
col_name.setCellValueFactory(new PropertyValueFactory<>(“name”));
col_phone.setCellValueFactory(new PropertyValueFactory<>(“phone”));
col_depart.setCellValueFactory(new PropertyValueFactory<>(“depart”));
col_position.setCellValueFactory(new PropertyValueFactory<>(“position”));
}

您好!关于JavaFX中的TableView表格,我可以为您提供一些基本的信息和用法。 TableViewJavaFX中的表格控件,它可以用于显示和编辑表格数据。您可以在表格中显示多列数据,并允许用户对其中的数据进行排序、过滤和编辑等操作。 以下是一些常见的TableView用法: 1. 创建TableView: 您可以通过以下代码创建一个空的TableView: ```java TableView<YourDataModel> tableView = new TableView<>(); ``` 2. 定义表格列: 使用TableColumn类来定义表格的列,您可以指定列的标题、宽度、数据类型以及显示数据的方式等。例如: ```java TableColumn<YourDataModel, String> column1 = new TableColumn<>("Column 1"); column1.setCellValueFactory(new PropertyValueFactory<>("property1")); // 添加更多列... ``` 3. 填充表格数据: 您需要将数据模型绑定到表格中,使其能够显示数据。例如,如果您有一个包含数据的ObservableList,您可以这样将其设置给表格: ```java ObservableList<YourDataModel> data = FXCollections.observableArrayList(); tableView.setItems(data); ``` 4. 处理表格事件: 您可以根据需要添加事件处理程序来处理表格上的各种事件,例如单元格点击、双击、列排序等。 ```java tableView.setOnMouseClicked(event -> { if (event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 2) { // 处理双击事件 } }); ``` 5. 编辑表格数据: 您可以启用表格的编辑功能,使用户能够直接在表格中编辑数据。例如,如果您的数据模型具有可编辑的属性,您可以这样启用编辑功能: ```java tableView.setEditable(true); column1.setCellFactory(TextFieldTableCell.forTableColumn()); column1.setOnEditCommit(event -> { YourDataModel rowData = event.getRowValue(); rowData.setProperty1(event.getNewValue()); }); ``` 这只是一些基本的用法示例,您可以根据自己的需求进一步扩展和定制TableView的功能。希望对您有所帮助!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值