Можем ли мы повторно использовать компоненты приложения Java Swing в других экземплярах того же приложения? - PullRequest
3 голосов
/ 03 декабря 2010

У нас есть приложение Java Swing, которое содержит такие компоненты, как JTable, JCombobox, JTextArea и множество других компонентов Swing.

Теперь существует требование, согласно которому нам необходимо создать несколько экранов / копировать одни и те же приложения Java Swing. Например, если моим основным приложением Java Swing является X, тогда я должен создавать такие же приложения A, B, C, D, ... как X.

Так что здесь есть некоторые очевидные ограничения дизайна, которые мы не должны создавать X-приложений много раз. Мы должны создать его только один раз и использовать их для создания других приложений A, B, C, D ....

Здесь есть проблема, эти приложения A, B, C ... могут быть или не быть подмножествами X. Это означает, что A имеет меньше компонентов Swing, чем X.

Существует один способ сохранить файлы классов и создать приложение из него, но как насчет компонентов Swing, как мы можем их повторно использовать? Где мы можем хранить их?

Это вопрос дизайна. Любые идеи ..

Ответы [ 2 ]

3 голосов
/ 03 декабря 2010

Я думаю, что лучшее, что вы можете сделать, - это создать свое приложение таким образом, чтобы вы могли подключать и отключать его. Итак, архитектура плагин / модуль лучше всего подходит здесь. Вы можете создать свой модуль на основе компонентов; если приложению нужен модуль / плагин, установите его, в противном случае - нет. Так же, как мы делаем с нашими IDE, такими как Netbeans, Eclipse, IntelliJ.

Поскольку это приложение Swing, я настоятельно рекомендую изучить Netbeans Platform .

0 голосов
/ 03 декабря 2010

Все компоненты Swing являются сериализуемыми. Я думаю, что вы можете создать JPanel, показать его, сериализовать, затем восстановить и показать снова. Полагаю, что пустынная панель будет показана отдельно.

Попробуйте с простой панелью. Если это работает, попробуйте применить эту технику к вашему приложению.

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