поэтому у меня следующая проблема. У меня есть JavaFX TableView, где все ячейки имеют одинаковый стиль, но один. Для этой одной ячейки я хотел бы удалить все стили, но я думаю, что у RowFactory есть какой-то приоритет или что-то в этом роде.
У меня есть такой код:
FXML
<TableView fx:id="tableView">
<columns>
<TableColumn fx:id="tcolNoStyle"/>
<TableColumn fx:id="tcolStyled"/>
</columns>
</TableView>
Контроллер
public class TableController {
@FXML
TableView<TableData> tableView;
@FXML
TableColumn<TableData, String> tcolNoStyle;
@FXML
TableColumn<TableData, String> tcolStyled;
@FXML
public void initialize(){
tableView.setRowFactory(row -> new RowFactory());
tcolNoStyle.setCellFactory(cell -> new CellFactoryForNoStyling());
}
}
Данные за столом
public class TableData {
public final SimpleStringProperty noStyleTextProperty;
public final SimpleStringProperty styledTextProperty;
public TableData(){
noStyleTextProperty = new SimpleStringProperty();
styledTextProperty = new SimpleStringProperty();
}
}
RowFactory
public class RowFactory extends TableRow<TableData> {
public RowFactory(){
itemProperty().addListener(((observable, oldValue, newValue) -> {
if (newValue != null){
setStyle("-fx-text-alignment: right");
}
}));
}
}
CellFactory, что одна ячейка без стиля
public class CellFactoryForNoStyling extends TableCell<TableData, String> {
public CellFactoryForNoStyling(){
super();
setStyle(null);
}
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
setStyle(null);
}
}
Итак, я хочу, чтобы только у этого столбца не было стиля
Заранее спасибо!