2010-12-15 8 views
1

J'ai une fenêtre principale dans mon programme - classe qui hérite de JFrame, cette fenêtre a JMenuBar.Java, swing, JFrame et JPanel

Dans le code I créer dynamiquement instance de JPanel avec certains composants et définir ce panneau à la fenêtre principale en tant que volet de contenu.

Mais après que cette barre de menu croise mon panneau, la partie du panneau se trouve derrière la barre de menu. Cela continue jusqu'à ce que je change la taille de ma fenêtre. Après cette intersection disparaît et le panneau de menu placé sous la barre de menu sans intersection.

JFrame view = ApplicationContext.getInstance().getView(); 
JPanel panel = new TherapeuticProfile().getRootPanel(); 
view.setContentPane(panel); 

Répondre

1

Après que la fenêtre est affichée? Dans ce cas, vous aurez besoin de revalidate.

En procédant de la sorte avec AWT EDT? Dans ce cas, vous devrez arrêter de le faire.

(également, comme dans statics ApplicationContext.getInstance() sont vraiment une mauvaise idée dans tout programme.)

+0

En plus ... Dans mon programme, je suis modèle MVC et l'utilisation ApplicationContext qui est singleton je suis magasin seulement des liens au modèle, à la vue et au contrôleur. Pourquoi c'est "vraiment une mauvaise idée"? – Dmitriy

+0

@Dmitriy Oh, google "singletons sont mal". –