2012-04-04 7 views
0

Ich möchte die Methode 'outClass' der internen Klasse getContentPane() aufrufen. Ich verstehe nicht, warum mein Code nicht funktioniert.Aufruf der Methode der äußeren Klasse getContentPane() aus der internen Action-Klasse

public class MainFrame extends JFrame { 
    public MainFrame() { 
     super("My app"); 
     JMenuBar menuBar = new JMenuBar(); 
     setJMenuBar(menuBar); 

     JMenu myMenu = new JMenu("File"); 
     menuBar.add(myMenu); 
     Action myAction = new AbstractAction("Do everything") { 
      public void actionPerformed(ActionEvent e) { 
       JPanel panel = new JPanel(); 
       panel.setBackground(Color.CYAN); 
       getContentPane().add(panel, BorderLayout.CENTER); 
      } 
     }; 
     myMenu.add(myAction); 
    } 
} 
+0

Können Sie auf "funktioniert nicht" erweitern? – Qwerky

Antwort

1

Sie müssen validate(); Verfahren nach getContentPane().add(...); nennen.

Die Validierungsmethode wird verwendet, damit ein Container seine Unterkomponenten erneut auslegt. Es sollte aufgerufen werden, wenn die Unterkomponenten dieses Containers geändert werden (dem Container hinzugefügt oder aus dem Container entfernt werden oder layoutbezogene Informationen geändert werden), nachdem der Container angezeigt wurde.

+0

Danke. Es klappt. – Dmitry