2010-12-03 24 views
3

Nous avons une application Java Swing qui contient des composants comme JTable, JCombobox, JTextArea et beaucoup d'autres composants Swing.Peut-on réutiliser les composants de l'application Java Swing dans d'autres instances de la même application?

Maintenant, il y a une exigence qui dit que nous devons créer plusieurs écrans/copie des mêmes applications Java Swing. Par exemple Si mon application Java Swing principale est X alors je dois créer les mêmes applications A, B, C, D, ... même que X.

Donc, voici quelques contraintes de conception évidentes que nous ne devrions pas créer beaucoup d'applications X fois. Nous devrions le créer une seule fois et les utiliser pour créer d'autres applications A, B, C, D ....

Il y a un problème ici ces applications A, B, C ... peuvent être ou ne pas être des sous-ensembles de X. Cela signifie que A a moins de composants Swing que X.

Il existe des fichiers de classe de magasin à sens unique et de création d'application, mais qu'en est-il des composants Swing, comment les réutilisons-nous? Où pouvons-nous les stocker?

Ceci est une sorte de question de conception. Toutes les idées ..

+1

Je ne suis pas sûr de comprendre votre problème. Les composants Swing sont des classes comme n'importe quoi d'autre. Et les éléments par défaut comme JTable etc. que vous listez sont dans les bibliothèques JDK par défaut, donc disponibles pour toutes les applications. –

+0

Non c'est comme tous les composants JTable etc doivent être créés qu'une seule fois et nous devrions les utiliser dans d'autres réplicas des mêmes applications. Par exemple L'application X a JTable pour qu'il soit créé maintenant Une application l'utilisera et l'application B ne l'utilisera pas. Nous devons donc créer quelque chose comme un pool de tous les objets de composants Swing et l'utiliser pour créer des répliques de l'application principale de Swing. – u449355

Répondre

3

Je pense que le mieux que vous pouvez faire est de concevoir votre application de manière à pouvoir brancher et débrancher les choses. Donc, un type d'architecture plugin/module convient le mieux ici. Vous pouvez concevoir votre module de composants basé; si l'application a besoin d'un module/plugin, installez-la, sinon ne le faites pas. Tout comme nous le faisons avec nos IDE, comme Netbeans, Eclipse, IntelliJ. Comme il s'agit d'une application Swing, je recommande fortement de regarder Netbeans Platform.

-1

Tous les composants Swing sont sérialisables. Je pense que vous pouvez créer JPanel, le montrer, le sérialiser, puis le restaurer et le montrer à nouveau. Je crois que le panneau déserilisé sera montré séparément.

Essayez-le avec un panneau simple. Si cela fonctionne, essayez d'appliquer cette technique à votre application.

+2

Ne le ferais pas: la sérialisation n'est pas garantie pour fonctionner dans toutes les versions, même des modifications mineures de la version de Java Runtime peuvent le casser. –