JavaFX Tableview 使特定单元格着色

JavaFX Tableview make specific cells colored

TableColumn tc = new TableColumn();

tc.getStyleClass.add(".style in css file")

我用 css 文件设置了表格列。我想让每个单元格都有不同的背景。有什么办法吗?

tableColumn row 1 bakcground color = green, row2 = red, row3 = blue....等

您必须为 TableView 使用 setRowFactory 并更改行样式。 那里的一个小例子:

tableView.setRowFactory(new Callback<TableView<Data_type>, TableRow<Data_type>>(){
            //There can define some colors.
            int color = 0;
            String colors[] = new String[]{"red","blue","green"};
            @Override
            public TableRow<Data_type> call(TableView<Data_type> param) {
                final TableRow<Data_type> row = new TableRow<Data_type>() {
                    @Override
                    protected void updateItem(Data_type item, boolean empty) {
                        super.updateItem(item, empty);
                        //there write your code to stylize row
                        if(getIndex() > -1){
                            String color = colors[getIndex() % 3];
                            setStyle("-fx-background-color: "+ color + ";");

                        }
                    }
                };
                return row;
            }
        });

结果: