栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在JavaFX中将CheckBox添加到TableView

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在JavaFX中将CheckBox添加到TableView

您需要在TableColumn上设置一个CellFactory。

例如:

Callback<TableColumn<TableData, Boolean>, TableCell<TableData, Boolean>> booleanCellFactory =  new Callback<TableColumn<TableData, Boolean>, TableCell<TableData, Boolean>>() { @Override     public TableCell<TableData, Boolean> call(TableColumn<TableData, Boolean> p) {         return new BooleanCell(); }        };        active.setCellValueFactory(new PropertyValueFactory<TableData,Boolean>("active"));        active.setCellFactory(booleanCellFactory);class BooleanCell extends TableCell<TableData, Boolean> {        private CheckBox checkBox;        public BooleanCell() { checkBox = new CheckBox(); checkBox.setDisable(true); checkBox.selectedProperty().addListener(new ChangeListener<Boolean> () {     public void changed(Observablevalue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {         if(isEditing())  commitEdit(newValue == null ? false : newValue);     } }); this.setGraphic(checkBox); this.setContentDisplay(ContentDisplay.GRAPHIC_ONLY); this.setEditable(true);        }        @Override        public void startEdit() { super.startEdit(); if (isEmpty()) {     return; } checkBox.setDisable(false); checkBox.requestFocus();        }        @Override        public void cancelEdit() { super.cancelEdit(); checkBox.setDisable(true);        }        public void commitEdit(Boolean value) { super.commitEdit(value); checkBox.setDisable(true);        }        @Override        public void updateItem(Boolean item, boolean empty) { super.updateItem(item, empty); if (!isEmpty()) {     checkBox.setSelected(item); }        }    }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号