生活随笔
收集整理的這篇文章主要介紹了
javafx之TableView的TaleCell
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TaleCell
對TableColumn的cell里面弄重新構造
TableColumn的setCellFactory(TextFieldTableCell.forTableColumn());有一些默認的構造。?
或者重寫TableCell類
?
[java]?view plaincopy
tableColumn.setCellFactory(new?Callback<TableColumn<Path,?Number>,?TableCell<Path,?Number>>()?{?? ????????????@Override?? ????????????public?TableCell<Path,?Number>?call(TableColumn<Path,?Number>?param)?{?? ????????????????return?new?MyTableCell<Path,?Number>();???? ????????????}?? }??
Tablecell里面不僅只存放文字,還可以存放其它Node,需要重寫TableCell的update(T t,boolean empty)方法編輯單元格可以使用重寫startEdit()和cancelEdit()
[java]?view plaincopy
class?MyTableCell<Path,?Node>?extends?TableCell<Path,?Node>?{?? ?????protected?void?updateItem(Node?node,boolean?empty)?{?????????? ??????????????super.updateItem(node,?empty);???? ??????????????if?(empty||node==null)?{?????? ????????????????setText(null);???? ????????????????setGraphic(null);???? ??????????????else?{?????????????????????????????????? ???????????????setText(null);???? ???????????????setGraphic(node);???? ????????????}??? ?????}?? ?????@Override?? ???public?void?startEdit()?{?? ???????super.startEdit();???? ????????????? ????????? ????????? ?????}?? ?? ?? ????@Override?? ????public?void?cancelEdit()?{?? ????????super.cancelEdit();?? ?????????? ?????????? ?????????? ????}?? } ?
雙擊鼠標監聽
通過tableColumn.setCellFactory(new TaskCellFactory());設置了CellFactory。
TaskCellFactory的內容如下:
[java]?view plaincopy
class?TaskCellFactory?implements?Callback<TableColumn<Task,?String>,?TableCell<Task,?String>>?{?? ?? ????@Override?? ????public?TableCell<Task,?String>?call(TableColumn<Task,?String>?param)?{?? ????????TextFieldTableCell<Task,?String>?cell?=?new?TextFieldTableCell<>();?? ????????cell.setOnMouseClicked((MouseEvent?t)?->?{?? ????????????if?(t.getClickCount()?==?2)?{?? ????????????????? ????????????}?? ????????});???????? ????????return?cell;?? ????}?? }??
整個實現的核心就在于重點就在于實現
Callback<TableColumn<Task, String>, TableCell<Task, String>>
然后返回JavaFX API自帶的
TextFieldTableCell
。并在call()方法中,為cell增加了雙擊事件的處理。
?
總結
以上是生活随笔為你收集整理的javafx之TableView的TaleCell的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。