2012-10-02 4 views
0

Je suis un débutant Java apprenant Swing ... J'espère que c'est vraiment simple. J'ai créé un JFrame et ajouté un MenuBar et un Panel. . . Quand je presse lance, la fenêtre apparaît montrant le menu et le panneau ... Il fonctionne jusqu'à ici ... permet maintenant de faire quelque chose ..Comment trouver des composants dans un cadre

J'ai mis le visibility des Panel et MenuBar variables de référence dans MainFrame.java fichier comme private ..

le problème est, je veux accéder à ces variables ... Par exemple: - Je veux ajouter du contenu à la Panel et/ou activer/désactiver les choses dans le Menu(s). Mais tout ce que je tiens est une poignée pour le JFrame principal.

Comment puis-je obtenir un handle pour le Menu ou le Panel?

Je pourrais ajouter des méthodes d'accesseur au fichier MainFrame.java. . . mais je pense que Java pourrait avoir une façon standard de le faire. . . et si les méthodes d'accesseur étaient la manière typique de manipuler cela, je supposerais qu'elles seraient fournies par le constructeur d'interface graphique de NetBeans.

Qu'est-ce qui me manque?

Frank

+0

pour une meilleure aide plus tôt après un [SSCCE] (http://example.com), probablement personne ne sait si vous avez besoin de constructeur, MVC, arbre de composants ou ... ??? – mKorbel

+0

Qu'est-ce qu'un SSCCE. . . (le lien ne va nulle part utile) – Frank

Répondre

2

Les méthodes accesseurs est une bonne façon d'aller. Une autre façon serait de faire quelque chose comme une inversion de contrôle. Au lieu d'obtenir des références à vos objets de menu et de panneau d'une autre classe, vous pouvez appeler des méthodes dans la classe de cadre principal pour faire le travail sur le menu et le panneau que vous devez faire dans les autres classes. Un autre choix consisterait à naviguer dans le graphique des composants, mais je ne le recommanderais pas parce que chaque fois que vous ajouterez/supprimer des composants à vos panneaux dans le cadre, vous devrez changer la logique qui récupère les références au menu et le panneau dont vous avez besoin.

+1

+1 pour l'API de style "getter" – MadProgrammer

+0

Merci pour le rappel sur l'inversion du contrôle. . . J'aime encore mieux. – Frank

Questions connexes