Java TableView-行上的fx文本填充

Java TableView-行上的fx文本填充,java,javafx,javafx-2,javafx-8,Java,Javafx,Javafx 2,Javafx 8,根据,要么是高特异性要么是!重要信息标签应用于更改非常“隐藏”的选择器 但是,我似乎无法更改表格行的-fx文本填充 我宁愿解决这个问题,也不愿在行工厂中使用setTextFill SSCCE tableviewtester.css位于tableviewtester类的旁边,它包含: .myrow { -fx-selection-bar-text: red; -fx-text-fill: red; } 请注意-fx选择栏文本正在工作 import javafx.applic

根据,要么是高特异性要么是
!重要信息
标签应用于更改非常“隐藏”的选择器

但是,我似乎无法更改
表格行
-fx文本填充

我宁愿解决这个问题,也不愿在行工厂中使用
setTextFill


SSCCE

tableviewtester.css
位于
tableviewtester
类的旁边,它包含:

.myrow {
    -fx-selection-bar-text: red;
    -fx-text-fill: red; 
}

请注意
-fx选择栏文本
正在工作

import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.CellDataFeatures;
import javafx.scene.control.TableRow;
import javafx.scene.control.TableView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import javafx.util.Callback;

/**
 * 
 * @author ggrec
 *
 */
public class TableViewTester extends Application
{

    // ==================== 3. Static Methods ====================

    public static void main(final String[] args)
    {
        launch(args);
    }


    // ==================== 4. Constructors ====================

    @Override
    public void start(final Stage primaryStage) throws Exception
    {
        final Scene scene = new Scene(createContents());
        scene.getStylesheets().add(this.getClass().getResource("tableviewtester.css").toExternalForm());

        primaryStage.setScene(scene);
        primaryStage.show();
    }


    // ==================== 5. Creators ====================

    private StackPane createContents()
    {
        final StackPane pane = new StackPane();

        final TableView<String> table = new TableView<>();
        table.setRowFactory(new TableRowFactory());

        final TableColumn<String, String> column = new TableColumn<>("Color");
        column.setCellValueFactory(new TableCellValueFactory());
        column.prefWidthProperty().setValue(300);

        // Add Columns
        table.getColumns().setAll(FXCollections.observableArrayList(column));

        // Add Items
        table.setItems(FXCollections.observableArrayList("Green", "Red", "Blue"));

        pane.getChildren().setAll(table);

        return pane;
    }


    // =======================================================
    //           19. Inline Classes 
    // =======================================================

    private class TableCellValueFactory implements Callback<CellDataFeatures<String, String>, ObservableValue<String>>
    {
        @Override
        public ObservableValue<String> call(final CellDataFeatures<String, String> cellWrapper)
        {
            return new SimpleStringProperty(cellWrapper.getValue());
        }
    }

    private class TableRowFactory implements Callback<TableView<String>, TableRow<String>>
    {
        @Override
        public TableRow<String> call(final TableView<String> arg0)
        {
            final TableRow<String> row = new TableRow<String>() {

                @Override protected void updateItem(final String line, final boolean empty)
                {
                    super.updateItem(line, empty);

                    this.getStyleClass().add("myrow");
                }
            };

            return row;
        }
    }

}
导入javafx.application.application;
导入javafx.beans.property.SimpleStringProperty;
导入javafx.beans.value.observeValue;
导入javafx.collections.FXCollections;
导入javafx.scene.scene;
导入javafx.scene.control.TableColumn;
导入javafx.scene.control.TableColumn.CellDataFeatures;
导入javafx.scene.control.TableRow;
导入javafx.scene.control.TableView;
导入javafx.scene.layout.StackPane;
导入javafx.stage.stage;
导入javafx.util.Callback;
/**
* 
*@author ggrec
*
*/
公共类TableViewTester扩展了应用程序
{
//============================3.静态方法====================
公共静态void main(最终字符串[]args)
{
发射(args);
}
//===============================4.施工人员====================
@凌驾
public void start(final Stage primaryStage)引发异常
{
最终场景=新场景(createContents());
scene.getStylesheets().add(this.getClass().getResource(“tableviewtester.css”).toExternalForm());
初级阶段。场景(场景);
primaryStage.show();
}
//===============================5.创作者====================
私有StackPane createContents()
{
最终堆栈窗格=新堆栈窗格();
最终的TableView表格=新的TableView();
table.setRowFactory(新TableRowFactory());
最终表列=新表列(“颜色”);
column.setCellValueFactory(新表CellValueFactory());
column.prefWidthProperty().setValue(300);
//添加列
table.getColumns().setAll(FXCollections.observableArrayList(column));
//添加项目
表.setItems(FXCollections.observableArrayList(“绿色”、“红色”、“蓝色”));
pane.getChildren().setAll(表);
返回窗格;
}
// =======================================================
//19.内联类
// =======================================================
私有类TableCellValueFactory实现回调
{
@凌驾
公共observeValue调用(最终CellDataFeatures cellWrapper)
{
返回新的SimpleStringProperty(cellWrapper.getValue());
}
}
私有类TableRowFactory实现回调
{
@凌驾
公共TableRow调用(最终TableView arg0)
{
最终TableRow行=新TableRow(){
@覆盖受保护的void updateItem(最终字符串行,最终布尔值为空)
{
super.updateItem(行,空);
this.getStyleClass().add(“myrow”);
}
};
返回行;
}
}
}

-fx text inner color
是正确的属性,而不是
-fx fill color