powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaFX TableView модель данных
12 сообщений из 12, страница 1 из 1
JavaFX TableView модель данных
    #39293509
boris_94263
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, друзья! Подскажите, кто в курсе)
В базе имеется большая табличка (около 20 полей): несколько строковых, остальные - численные. Правильно я понимаю, что:
1. Нужно создать POJO, который будет описывать эту таблицу (со всеми нужными полями).
2. Для
Код: plaintext
TableView<>
сделать 20 TableColumn`ов и каждый повесить через CellValueFactory на свое поле в модели.

Как-то много получается) Может есть какой способ это дело упростить? Думал в сторону
Код: plaintext
ArrayList<TableCloumn<Model, String>>
- но тогда на меня ложится контроль типов в колонках. А на ввод значений нужны проверки всякие, сложные и не очень. И притом разные для разных столбцов.

Да и в целом, если нужно по каким-нибудь правилам заполнять много колонок в таблице - запасаться TableColumn`ами?
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39297980
boris_94263
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может я выразился уж очень абстрактно?)
Если более конкретно - как стоит построить архитектуру таблицы, если неизвестны ни кол-во колонок, ни их типы, ни расположение? И желательно, чтобы в колонки с цифрами нельзя было вводить буквы и спец. символы.
А если ещё и даты есть?)
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39297994
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У таблицы есть длинна и ширина. Почему у вас "большая табличка" это сразу ширина?
20 это не много.
JavaFX бины это не POJO, потому что они требуют JavaFX свойств.
В чем проблема замапить 20 колонок? Тем более учитывая, что у вас там разные типы и редакторы. Эту всю информацию надо же как-то таблице сообщить.

Если у вас всё прямо динамически нужно, то напишите небольшую утилиту, которая по типу свойства задаёт нужные CellFactory/CellValueFactory.
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39298116
boris_94263
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczУ таблицы есть длинна и ширина. Почему у вас "большая табличка" это сразу ширина?

С длиной вроде проще - getItems().add(...) - и никаких настроек. Если нет нужды углубляться в "низы" поведения таблицы - этого вроде бы хватает. Быстродействие отложим пока что)

Blazkowicz20 это не много.

Ну тут всё относительно) К примеру колонки с датой, строчкой и 18 колонок чисел. Если есть способ (об чём и вопрос) задать разом одинаковые правила заполнения для 18 колонок, + ещё 2 для строчки и даты - почему бы так не сделать?
Здесь же можно использовать соглашение об именовании полей и reflection. Например для таблицы tvPerson<Person> - колонка tcPerson_name. Для неё поле (или свойство) класса Person.name. Поле с типом String - значит tcPerson<Person, String> - и cvf / cf соответствующие. Думаю было бы удобно.
А ещё удобнее не писать этот api самому)

BlazkowiczJavaFX бины это не POJO, потому что они требуют JavaFX свойств.

За уточнение спасибо)
Я в модели использую именно POJO, поскольку кроме как для таблиц мне свойства не нужны. Сделал раз
Код: plaintext
col.setCellValueFactory(cdf -> new SimpleObjectProperty<String>(cdf.getValue().getName()));
и забыл про свойства. Не нужны никакие getValue(), set() при манипуляциях с данными внутри модели. Для контроллеров же - конечно get / set. Хотя частично и тут можно выкрутиться final - примитивами.
Или я не прав?

BlazkowiczВ чем проблема замапить 20 колонок? Тем более учитывая, что у вас там разные типы и редакторы. Эту всю информацию надо же как-то таблице сообщить.

Первая проблема в лени - не хочется 20 строк подряд писать
Код: plaintext
col.setCellFactory(col -> TextFieldTableCell.forTableColumn(conv));
, меняя лишь конвертер на doubleConv и intConv.
А вторая - как быть, если заранее типы неизвестны? например я хочу xml-файл оформить в TableView. Причём структура xml`я подразумевает указание типа колонки, но их порядок и кол-во неизвестны?

BlazkowiczЕсли у вас всё прямо динамически нужно, то напишите небольшую утилиту, которая по типу свойства задаёт нужные CellFactory/CellValueFactory.
Именно! Может такие уже есть, не знаете?
У меня идея только с
Код: plaintext
TableView<ArrayList<String>>
. Возможно есть способ выехать на масках типов?
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39298141
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_94263А вторая - как быть, если заранее типы неизвестны?
типы колонок?
Должны быть известны на стадии проектирования ИС.
В большинстве случаев.
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39298151
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_94263Правильно я понимаю, что:
1.
А где учебник или Hello World с которого делаешь?
Чтобы было круто. Чтобы FXML был.
?
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39298159
boris_94263
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123boris_94263А вторая - как быть, если заранее типы неизвестны?
типы колонок?
Должны быть известны на стадии проектирования ИС.
В большинстве случаев.
Не совсем точно написал. Известно, что могут быть (ну например) числа целые / вещ., строки и даты. А конкретный порядок колонок - неизвестен. Неизвестно и количество колонок - может 2 LocalDate, Integer и 10 String (имею ввиду типы колонок); а может одна String и 15 Float.

Petro123boris_94263Правильно я понимаю, что:
1.
А где учебник или Hello World с которого делаешь?
Чтобы было круто. Чтобы FXML был.
?
HelloWorld , но там неинтересно) Хотя начать он помог.
Конкретный fxml - например, вот. Должен прилепиться ниже.

Здесь поясню, что вопрос скорее в концепции.
Конкретно в fxml - видно, что однотипных колонок много (ну, больше трёх)). Хочу как-то автоматизировать управление ими, но никак не придумаю способ.
А в общем виде - как можно управлять таблицей, если неизвестно точное количество колонок, но известны типы, которые в принципе могут в таблице появиться (а могут и не появиться).
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39298186
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_94263,
Делается так:
- все типы и названия и точность колонок известна заранее. Выше уже писал. Т.к в бд или xml все известно.
- можно при загрузке ПРОВЕРЯТЬ, если юзверь ничего не правил в настройках, то показать колонку фио, а возраст нет.
Это default grid.
Логично?
Т.е.
If isUserNotGridSave () then
setGridDefaultSettings ();
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39300729
Maxifly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_94263,

Немного оффтоп, но интересно, а насколько органично на форме будет смотреться таблица с 20 колонками.
Сейчас Exel открыл - у него на экран 23 колонки помещаются, и это при том, что они достаточно узкие.
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39300804
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxifly,
Мож это долги по крышеванию).
Плюсик - заплатил, минусик - долги выбираем.
Тогда ширина 1 символ.
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39303807
boris_94263
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxiflyboris_94263,
Немного оффтоп, но интересно, а насколько органично на форме будет смотреться таблица с 20 колонками.
Сейчас Exel открыл - у него на экран 23 колонки помещаются, и это при том, что они достаточно узкие.
Fxml есть выше, можно посмотреть) Конечно не верх удобства, но наглядно. Наверное)

Petro123Maxifly,
Мож это долги по крышеванию).
Плюсик - заплатил, минусик - долги выбираем.
Тогда ширина 1 символ.
Бухгалтерия та ещё, по 3 столбика на каждую комиссию. Белая, чёрная и разность первых двух)

Petro123boris_94263,
Делается так:
- все типы и названия и точность колонок известна заранее. Выше уже писал. Т.к в бд или xml все известно.
- можно при загрузке ПРОВЕРЯТЬ, если юзверь ничего не правил в настройках, то показать колонку фио, а возраст нет.
Это default grid.
Логично?
Т.е.
If isUserNotGridSave () then
setGridDefaultSettings ();
Есть может какие библиотеки, через которые это дело можно автоматизировать? Типа дал на вход ResultSet, а на выходе тебе - оформленная таблица, с фильтрами и редактированием?
...
Рейтинг: 0 / 0
JavaFX TableView модель данных
    #39303815
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boris_94263Белая, чёрная и разность первых двух)
))
boris_94263Типа дал на вход ResultSet, а на выходе тебе - оформленная таблица, с фильтрами и редактированием?
а ля Delphi?
Странно что таких для сабжа нет. Я пока не видел, но может быть когда нибудь.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaFX TableView модель данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]