2010-11-17 5 views
2

J'ai une "MainWindow" avec une table qui montre tous les livres dans une vue d'ensemble. Si je sélectionne une entrée (ou plus d'une) et que je clique sur "Show selected", les nouvelles JFrame (s) sont ouvertes avec les objets correspondants ("DetailView"). Puisque la "MainWindow" est toujours active, je suis capable d'ouvrir le même objet deux fois (deux "DetailView" pour le même objet).singleton JFrame pour différents objets

Je voudrais en faire une fenêtre singleton en fonction de l'objet: si le même objet est sélectionné pour la deuxième fois, j'aimerais mettre l'accent sur le JFrame déjà ouvert. Je ne suis pas familier avec java, donc c'est peut-être une mauvaise approche, et peut-être déjà inclus dans le Swing-Framework, même si Google ne m'a pas donné d'indices.

+2

Je n'arrive pas à obtenir ce que vous voulez, mais un singleton est presque toujours (sinon toujours) une mauvaise idée. – helpermethod

Répondre

2

Vous avez besoin d'une sorte de "registre JFrame", un simple Map<Object, JFrame> qui permet de rechercher la JFrame correcte pour un objet donné.

Chaque fois que vous créez une JFrame pour un objet, vous enregistrez cette image (valeur) avec l'objet (clé). Chaque fois que vous avez un objet, vous appelez map.get(object) et recevrez l'instance JFrame correcte.

Questions connexes