Как создать TableView с динамически добавляемыми столбцами во время выполнения в JavaFX? - PullRequest
0 голосов
/ 22 марта 2020

У меня есть TableView, его содержимое должно быть редактируемым и фактически должно сохраняться в базе данных. Этот TableView имеет несколько предопределенных столбцов и некоторые другие, которые будут определены во время выполнения. Предположим, что мой стол покажет первичные материалы для некоторой специальной еды. Эти первичные материалы имеют некоторые предопределенные столбцы (атрибуты), такие как имя, цена и единица измерения; Кроме того, эти первичные материалы имеют некоторые другие атрибуты, которые сохраняются в базе данных на основе предыдущих пользовательских данных, таких как количество жира, белка и т. Д. c. Обратите внимание, что эти атрибуты находятся в базе данных и должны быть сопоставлены со столбцами в таблице во время выполнения (эти столбцы также должны быть редактируемыми). Итак, я создал таблицу в файле f xml и добавил предопределенные столбцы; Также модель таблицы, которая должна быть объявлена ​​для хранения строк таблицы. Это мой класс модели таблицы: (для простоты опущены конструкторы и методы доступа)

public class PrimaryMaterialBean {
    private SimpleStringProperty number;
    private SimpleStringProperty name;
    private SimpleStringProperty price;
    private SimpleStringProperty unit;
}

И код TableView:

<TableView fx:id="table" layoutX="97.0" layoutY="170.0" nodeOrientation="RIGHT_TO_LEFT" prefHeight="400.0" prefWidth="816.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="121.0">
         <columns>
            <TableColumn fx:id="numberColumn" minWidth="50.0" prefWidth="50.0" text="number" />
            <TableColumn fx:id="nameColumn" minWidth="300.0" prefWidth="300.0" text="name" />
            <TableColumn fx:id="priceColumn" minWidth="220.0" prefWidth="220.0" text="price" />
            <TableColumn fx:id="unitColumn" minWidth="90.0" prefWidth="90.0" text="unit" />
         </columns>
</TableView>

Я знаю, что должен объявить дополнительные динамические элементы c столбцы в соответствующем файле контроллера. Также мне известно, как добавить динамические c coulmns. Но настоящая проблема здесь в том, что я не знаю, как объявить эти столбцы для редактирования и как сопоставить соответствующие поля в классе модели: (

1 Ответ

0 голосов
/ 27 марта 2020

Я нашел решение для выполнения sh этой задачи, и оно заключается в создании класса java во время выполнения. Я не знаю, является ли это решение надежным, но для меня оно работает.

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