javafx cell在初始化过程中如何获得其他列的值

有的时候在初始化一个tableview的时候,需要根据列的值来做出判断,是插入什么控件,或者是行的显示 颜色,前提是我们必须要获得该行,该列。

cell.setCellFactory(new Callback<TableColumn<TableBean,String>, TableCell<TableBean,String>>() {

            @Override
            public TableCell<TableBean, String> call(TableColumn<TableBean, String> param) {

                return new EditingCell(); //写个类继承TableCell
                // TODO Auto-generated method stub

            }


        });

覆写updateItem方法,这个是渲染方法。indexProperty()获取当前的index,有了这个值就轻松多了。

public class EditingCell extends TableCell<TableBean, String> {
    @Override
    protected void updateItem(String item, boolean empty) {
        System.out.println(indexProperty());
        super.updateItem(item, empty);
        //Button bt=new Button("按钮");
        //setGraphic(bt);
    }


}
JavaFX的FXML文件配置TableView以显示复选框,需要使用`TableView`的(Column)的`CheckBoxTableCell`。这里是一个基本的配置示例: 首先,在FXML文件定义TableView及其: ```xml <TableView fx:controller="your.package.YourController"> <!-- 其他配置 --> <columns> <!-- 其他配置 --> <TableColumn fx:id="checkColumn" text="Select" /> </columns> </TableView> ``` 接着,在对应的控制器类(这里是`YourController`)初始化`TableView`并设置复选框的单元格工厂: ```java package your.package; import javafx.fxml.FXML; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.CheckBoxTableCell; public class YourController { @FXML private TableView<?> tableView; @FXML private TableColumn<?, ?> checkColumn; @FXML public void initialize() { // 设置复选框的单元格工厂 checkColumn.setCellFactory(CheckBoxTableCell.forTableColumn(checkColumn)); // 设置每行可以编辑,以支持复选框的选/取消选操作 checkColumn.setEditable(true); // 假设你的数据模型是一个表 // tableView.setItems(yourDataList); } } ``` 在上述代码,`forTableColumn`方法用于设置的单元格工厂,它会为每行提供一个复选框。`setEditable(true)`方法使得每一行成为可编辑的,从而可以改变复选框的状态。 注意,示例假设你有一个名为`yourDataList`的数据模型表,你将该表绑定到`TableView`的`items`属性上,以便在界面上显示数据。你需要根据实际的数据结构和业务需求来编写相应的逻辑代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值