Отображение содержимого класса в графическом интерфейсе с Swing - PullRequest
1 голос
/ 10 февраля 2011

У меня есть несколько классов с полями и геттерами / сеттерами, и я хочу отобразить поля класса в приложении Swing.

Имя каждого поля должно отображаться в виде Label, и значение должно отображаться в зависимости от типа значения, т.е. е. String использует TextField, List использует ComboBox и т. Д.

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

Есть ли рекомендуемый / стандартный способ сделать это?

Я немного посмотрел на java.beans, но я не совсем уверен, не используется ли он в первую очередь, когда класс сам является компонентом Swing.

Ответы [ 4 ]

4 голосов
/ 10 февраля 2011

Другой вариант - использовать компонент PropertySheet из L2FProd .Из вашего описания он должен делать именно то, что вы хотели.

Он не обновлялся долгое время, но хорошо работает.

enter image description here

2 голосов
/ 10 февраля 2011

Вы можете добавить @Annotations к вашим полям, которые вы хотите просмотреть и отобразить в графическом интерфейсе.В каждом случае вы должны использовать отражения, чтобы получить доступ и найти все поля, которые вы хотите отобразить.Я думаю, что вы должны добавить собственную логику в привязку данных, которая проверяет данный класс на наличие его полей (может быть отфильтрован с помощью аннотации @Display или чего-то подобного).

Это должно быть очень легко реализовать, вы можете положиться на определение Боба POJO и получить доступ ко всем полям через getter / setter, не забудьте кэшировать обработанные классы, чтобы избежать циклических зависимостей классов.

Надеюсь, это поможет.

2 голосов
/ 10 февраля 2011

Я не думаю, что есть автоматизированный способ сделать это.На самом деле, я думаю, что вы, возможно, даже неправильно подходитеЧто если в вашем List содержатся объекты, отличные от Strings, например, как JComboBox собирается это исправить?Я бы предложил просто использовать JTable и поместить имя в первый столбец, а значение во второй столбец.

0 голосов
/ 26 апреля 2015

Есть ReflectionUI .Он может отображать примитивные значения объектов и списков, просто используя отражение.Хорошо работает со свойствами геттера / сеттера.

...