具体思路:自定义Checkbox类,在表格数据类添加Checkbox属性,绑定表格checkbox列。
1.定义Checkbox类
public class Checkbox
{
CheckBox checkbox=new CheckBox();
public ObservableValue<CheckBox> getCheckBox()
{
return new ObservableValue<CheckBox>() {
@Override
public void addListener(ChangeListener<? super CheckBox> listener) {
}
@Override
public void removeListener(ChangeListener<? super CheckBox> listener) {
}
@Override
public CheckBox getValue() {
return checkbox;
}
@Override
public void addListener(InvalidationListener listener) {
}
@Override
public void removeListener(InvalidationListener listener) {
}
};
}
public Boolean isSelected()
{
return checkbox.isSelected();
}
}
2.表格数据模型TestDevice添加Checkbox属性
public class TestDevice
{
public Checkbox cb = new Checkbox();
}
3.声明表格checkbox列
@FXML
TableColumn<TestDevice,CheckBox> actionColumn
绑定数据
actionColumn.setCellValueFactory(cellData ->cellData.getValue().cb.getCheckBox());
4.获得表格checkbox状态。只要获取TableView数据集合,遍历checkbox即可
public void check() {
ObservableList<TestDevice> list = tableView.getItems();
for (TestDevice o : list )
{
if (o.cb.isSelected())
{
System.out.println(o.deviceName.get());
}
}
}
网友评论