JavaFX - что мне нужно передать в forTableColumn () для CheckBoxTableCell - PullRequest
0 голосов
/ 19 сентября 2018

Итак, в моем коде у меня есть таблица с несколькими редактируемыми столбцами.

Некоторые из них являются текстовыми, некоторые имеют раскрывающееся меню, а другие являются полями выбора (true / false)

Вот как настраиваются столбцы:

usernameCol.setCellFactory(TextFieldTableCell.forTableColumn());
usernameCol.setCellValueFactory(new PropertyValueFactory<User,String>("username"));
permissionLevelCol.setCellFactory(ChoiceBoxTableCell.forTableColumn(/* this is a String[]*/usersManager.getPermissionNamesList()));
permissionLevelCol.setCellValueFactory(new PropertyValueFactory<User,String>("permissionLevel"));
giveRefundsCol.setCellFactory(CheckBoxTableCell.forTableColumn());
giveRefundsCol.setCellValueFactory(new PropertyValueFactory<PermissionLevel, CheckBoxTableCell>("giveRefunds"));

Это работает для TextFieldTableCell и ChoiceBoxTableCell, но я не знаю, что поставить для ChoiceBoxTableCell - ему нужен параметр вCheckBoxTableCell.forTableColumn()

Сообщение об ошибке:

Ошибка: (56, 56) Java: не найден подходящий метод для метода forTableColumn (без аргументов) javafx.scene.control.cell.CheckBoxTableCell.forTableColumn (javafx.scene.control.TableColumn) не применяется (не может вывести переменную типа (типов) S (фактические и формальные списки аргументов различаются по длине)) метод javafx.scene.control.cell.CheckBoxTableCell.forTableColumn (javafx.util.Callback>) не применимо (не может вывести переменные типа (s) S, T (фактические и формальные списки аргументов различаются по длине)) метод javafx.scene.control.cell.CheckBoxTableCell.forTableColumn (javafx.util.Callback>, булево) не применимо (не можетВывод переменных типа (s) S, T (фактические и формальные списки аргументов различаются по длине)(невозможно определить переменные типа (s) S, T (фактические и формальные списки аргументов различаются по длине))

ps: строка 56 из сообщения об ошибке - строка giveRefundsCol.setCellFactory(CheckBoxTableCell.forTableColumn());

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Кажется, вы просто пропустите сам столбец.

giveRefundsCol.setCellFactory(CheckBoxTableCell.forTableColumn(giveRefundsCol));

Забавная история, он не используется в исходном коде Oracle, вы можете просто передать ноль. Он будет работать так же

public static <S> Callback<TableColumn<S,Boolean>, TableCell<S,Boolean>> forTableColumn(
        final TableColumn<S, Boolean> column) {
    return forTableColumn(null, null);
}
0 голосов
/ 19 сентября 2018

Попробуйте сделать это после ошибки отображения кода строки 56.'giveRefundsCol.setSelected (true)'

Он должен быть в состоянии захватить данные, сделанные для флажка, и установить для него флажок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...