单击按钮更改tableview中行的颜色

时间:2019-02-03 19:36:39

标签: javafx

我想在单击按钮后永久更改表视图中选定行的颜色。

我有按钮,并且将其设置为活动状态,因此,单击按钮时,我想更改表视图中选定行的颜色。

1 个答案:

答案 0 :(得分:0)

我在表中做了类似的操作,在TableModel中,我具有字段颜色,该字段颜色会保留但不会显示。颜色设置如下:

            myTable.setRowFactory(tv -> new TableRow<>() {
            @Override
            public void updateItem(MyTableRow row, boolean empty) {
                super.updateItem(row, empty);
                if(row==null) {
                    setStyle("");
                } else if (row.getColor().equals("Grey")) {
                    setStyle(Theme.REPORT_THEME_GREY);
                } else if (row.getColor().equals("Yellow")) {
                    setStyle(Theme.REPORT_THEME_YELLOW);
                } else if (row.getColor().equals("Orange")) {
                    setStyle(Theme.REPORT_THEME_ORANGE);
                } else if (row.getColor().equals("Blue")) {
                    setStyle(Theme.REPORT_THEME_BLUE);
                } else if (row.getColor().equals("Mauve")) {
                    setStyle(Theme.REPORT_THEME_PURPLE);
                } else if (row.getColor().equals("Peach")) {
                    setStyle(Theme.REPORT_THEME_PEACH);
                } else if (row.getColor().equals("White")) {
                    setStyle(Theme.REPORT_THEME_WHITE);
                } else if (row.getColor().equals("Red")) {
                    setStyle(Theme.REPORT_THEME_RED);
                } else if (row.getColor().equals("Green")) {
                    setStyle(Theme.REPORT_THEME_GREEN);
                } else {
                    setStyle("");
                }
            }
        });

颜色和样式当然会随套件而改变。

我的版本不依赖于按钮,但是只需在模型上为选定的行调用setColor(Color)方法并重绘表即可。

相关问题