Я некоторое время сражался с этим, и, наконец, решил, что мне нужна помощь.Стол с фиксированными ячейками с Java-FX
Я пытаюсь создать таблицу, в которой каждая ячейка отображает определенный цвет. Это динамически создается на основе выбранного пользователем изображения.
Я получил его для работы с TilePane, но из-за размера стола он работал очень медленно.
В настоящее время я пытаюсь заставить его работать с помощью TableView. TableView создается, но не заполняется. Мой код для создания TableView и моего пользовательского класса TableCell приведен ниже.
Мой главный вопрос: это лучший способ сделать это? Если да, то что я делаю неправильно?
Заранее благодарю за огромную помощь, которую я всегда вижу здесь.
Код для создания TableView:
private ObservableList<ObservableList<Stitch>> stitchList;
private TableView<Stitch> pattern;
@Override
protected TableView<Stitch> call() throws Exception {
for (int i=0; i< stitchList.size(); i++) {
TableColumn<Stitch, Color> column = new TableColumn<>();
column.setCellValueFactory(new Callback<CellDataFeatures<Stitch, Color>, ObservableValue<Color>>() {
public ObservableValue<Color> call(CellDataFeatures<Stitch, Color> stitch) {
return stitch.getValue().getDisplayColorProperty();
}
});
column.setCellFactory(new Callback<TableColumn<Stitch, Color>, TableCell<Stitch, Color>>() {
@Override public TableCell<Stitch, Color> call(TableColumn<Stitch, Color> list) {
return new StitchCell();
}
});
//Set column sizes
column.setMinWidth(10);
column.setMaxWidth(10);
pattern.getColumns().add(column);
}
return pattern;
} // End Call
Код для пользовательских ячейки класса
public class StitchCell extends TableCell<Stitch, Color> {
@Override
protected void updateItem(Color color, boolean empty) {
super.updateItem(color, empty);
if (empty || color == null) {
this.setStyle("-fx-background-color: white");
} else {
this.setStyle("-fx-background-color: #" + Integer.toHexString(color.hashCode()));
}
}
}
Вы добавляете какие-либо предметы в стол? Вы показываете код для добавления столбцов, но никакого кода для фактического добавления элементов. –
Я пытаюсь понять, как это сделать. У меня есть 2D-массив вложенных наблюдаемых списков, но я не уверен, как добавить данные в таблицу. –