2013-05-11 1 views
2

Lors de la création d'une interface graphique MDI Swing, j'ai un certain nombre de JInternalFrames qui sont ajoutés à un JDesktopPane dans un JFrame. Je rends ces cadres internes invisibles en ajoutant setVisible (false) dans le constructeur, après la méthode initComponents (car le générateur GUI définit automatiquement ces cadres visibles dans cette méthode).Gestion de JInternalFrames dans un MDI Swing

Lors de l'exécution, l'utilisateur peut choisir d'ouvrir et de fermer JInternalFrames en appelant des écouteurs qui appellent setVisible (true) et setVisible (false), en fonction de l'état actuel des trames. J'aime comment la position précédente et l'état d'un cadre interne reste intact en utilisant cette conception. Cependant, quelque chose me dit que cela doit être terriblement mauvais, même si je n'ai encore vu aucun inconvénient. Donc, ma question est la suivante: est-ce un mauvais design?

+1

Si quelque chose, je pense qu'il est préférable de se souvenir des positions JInternalFrames. Un inconvénient est que si l'utilisateur redimensionne le JDesktopPane, un JInternalFrame peut être complètement hors de vue (c'est-à-dire, au-delà des limites visibles de JDesktopPane), vous pouvez donc vouloir vérifier cela en rendant un JInternalFrame visible. Ou, vous pourriez prendre la voie facile comme Windows 3.1 a fait et fournir des fonctions de menu "tuile" et "cascade". – VGR

Répondre

1

Dans le contexte d'un Multiple Document Interface (MDI), cette approche est tout à fait raisonnable. En outre, vous pouvez utiliser la méthode JInternalFramesetSelected() pour mettre en surbrillance un cadre particulier. Pour faciliter la navigation, cette méthode et d'autres peuvent être utilisées dans Action, comme indiqué here.

Questions connexes