У меня возникла проблема, которую я не могу решить. Дело в том, что мой TableView уже заполнен, и мне нужно, чтобы ячейки, соответствующие моим критериям, устанавливали значение ноль. У меня есть переменная korZemljiste, и если мое состояние заполнено заполненными ячейками в столбце colOsnovica, необходимо установить значение 0.00.Редактирование значения столбца TableView
Вот что я пробовал:
if (korZemljiste < 10000)
{
tblTabela.getItems().stream().forEach((o)
-> {
colOsnovica.setCellFactory(TextFieldTableCell.forTableColumn());
colOsnovica.setOnEditCommit(
new EventHandler<CellEditEvent<Nepokretnost, Number>>() {
@Override
public void handle(CellEditEvent<Nepokretnost, Number> t) {
((Nepokretnost) t.getTableView().getItems().get(
t.getTablePosition().getRow())
).setOsnovica(t.getNewValue());
}
});});}
К сожалению, для уродливого конца кода, не мог сделать, чтобы скопировать его должным образом.
В этой части я изменил из примера Oracle и я получаю сообщение об ошибке:
error: incompatible types: no instance(s) of type variable(s) S exist so that Callback<TableColumn<S,String>,TableCell<S,String>> conforms to Callback<TableColumn<Nepokretnost,Number>,TableCell<Nepokretnost,Number>>
colOsnovica.setCellFactory(TextFieldTableCell.forTableColumn());
, где S представляет собой тип переменной: S простирается Объект объявлен в методе forTableColumn()
error: incompatible types: Number cannot be converted to double
).setOsnovica(t.getNewValue());
Мой TableView используя <Nepokretnost, Number>
вид.
Примечание: Я думаю, мне не нужен этот пример из сайта Oracle, потому что я не хочу вручную изменять содержимое ячейки в столбце, я просто хочу установить их значение 0.00.
Какое-то простое решение для любого?
Заранее спасибо.
Я сделал поправку к моему коду на основе вашего предложения. Теперь он работает без ошибок. Спасибо за это. Но, я до сих пор не знаю, как установить значение конкретной ячейки через код до значения 0.00. Я попытался заменить: .setOsnovica (t.getNewValue(). DoubleValue()) с .setOsnovica (0) , но затем не дал желаемого результата. –
Это, вероятно, невозможно получить без дополнительной информации, например. ваш класс «Недокрытность». –