#java #javafx
#java #javafx
Вопрос:
Мне было интересно, могу ли я добавить «слой» цвета поверх столбца (фон ячейки) без полной потери чередующихся цветов строк, которые уже присутствуют. Я использовал setStyle, и это просто добавляет сплошной цвет.
TableView<LineItem> table = new TableView<>();
table.getSelectionModel().setCellSelectionEnabled(true);
TableColumn<LineItem, String> column1 = new TableColumn<>("Test1");
column1.setCellValueFactory(cellData -> cellData.getValue().string1Property());
column1.setEditable(true);
table.getColumns().add(column1);
TableColumn<LineItem, String> column2 = new TableColumn<>("Test2");
column2.setCellValueFactory(cellData -> cellData.getValue().string2Property());
column2.setEditable(true);
column2.setCellFactory(e -> new TableCell<LineItem, String>()
{
@Override
public void updateItem(String item, boolean empty)
{
super.updateItem(item, empty);
setStyle("-fx-background-color: green;");
if (item == null || empty)
{
setText(null);
} else
{
setText(item);
}
}
});
TableColumn<LineItem, String> column3 = new TableColumn<>("Test3");
column3.setCellValueFactory(cellData -> cellData.getValue().string2Property());
column3.setEditable(true);
Комментарии:
1. Не могли бы вы, пожалуйста, поделиться своим кодом?
2. @SamuelPhilipp Готово
3. Пожалуйста, поделитесь полной конфигурацией таблицы 😉
4. @SamuelPhilipp Готово
Ответ №1:
Вы можете просто использовать полупрозрачный цвет в своем TableCell
:
setStyle("-fx-background-color: rgba(0, 128, 0, 0.3);");
Результатом является:
Кроме того, вы можете изменить чередующийся цвет с помощью:
table.setStyle("-fx-control-inner-background-alt: #777777;");
Комментарии:
1. ИДЕАЛЬНО, это то, что мне было нужно. Спасибо.