在javafx中突出显示表视图中的行

时间:2017-07-20 05:18:02

标签: javafx

我们如何从javafx中的tableview获取行? 我们有一个tableview,其中包含一个包含复选框的列。根据复选框选择,我们必须将一行标记为灰色。我们该怎么做呢 ??任何帮助将不胜感激!

我们尝试了以下代码

table1 = tableview的名称

列零是带复选框的列,其值必须被检索,并且我们必须以灰色突出显示

    TableColumn calltypel = table1.getColumns().get(0);
    calltypel.setCellFactory(column -> {
    return new TableCell<Data, Boolean>() {
        @Override
        protected void updateItem(Boolean item, boolean empty) {
            super.updateItem(item, empty);

            setText(empty ? "" : getItem().toString());

            TableRow<Data> currentRow = getTableRow();


            if (!isEmpty()) {

                if(item)
                    currentRow.setStyle("-fx-background-color:#C3C3C3;");

                table1.setStyle("-fx-border-color: #A6A6A6; -fx-border-width:1px ;");
            } 
        }
    };
});

我们的目标是:我们必须勾选几行,然后点击一个按钮说&#34;完成&#34;并发布它应该保持灰色,直到应用程序结束。

以上代码有效,但这会导致永久绑定。我们勾选一个复选框,然后点击完成,该行变为灰色。之后,绑定是永久性的,即,当我们检查复选框时,它是灰色的,并根据原始表行列取消选中其白色/粉红色。

请帮忙!

0 个答案:

没有答案