# Panel einer Klasse in einer anderen anzeigen



## Guest (13. Apr 2005)

Ich habe zwei Klasse. durch eine Aktion in der ersten Klasse möchte ich das dass Panel der zweiten Klasse in der ersten angezeigt wird. Aber wie?



```
//Die eigentliche Klasse mit dem contentpane:

public class SchiffeVersenken extends JFrame{   
   
    private javax.swing.JPanel jContentPane = null; 

    private javax.swing.JPanel getJContentPane() 
    { 
        if (jContentPane == null) 
        { 
            jContentPane = new javax.swing.JPanel(); 
            jContentPane.setLayout(new java.awt.BorderLayout()); 
            jContentPane.add(getJJMenuBar(), java.awt.BorderLayout.NORTH); 
        } 
        return jContentPane; 
    } 

private javax.swing.JMenuItem getJMenuItem3() { 
        if(jMenuItem3 == null) { 
            jMenuItem3 = new javax.swing.JMenuItem(); 
            jMenuItem3.setText("Neues Spiel"); 
            jMenuItem3.addActionListener(new java.awt.event.ActionListener() { 
                public void actionPerformed(java.awt.event.ActionEvent e) { 
                    System.out.println("actionPerformed()"); 
                    /*DURCH DIESE AKTION SOLL DAS PANEL DER ANDEREN KLASSE IN DIESER KLASSE ANGEZEIGT WERDEN*/ 
                } 
             
            }); 
        } 
        return jMenuItem3; 
    } 


//Die zweite Klasse. Das Panel dieser Klasse soll sich in der oberern Klasse öffnen

public class ConnectionPanel extends JPanel{     

    private javax.swing.JPanel jPanelConnection = null; 
     
    private javax.swing.JPanel getJPanelConnection() { 
        if(jPanelConnection == null) { 
            jPanelConnection = new javax.swing.JPanel(); 
            jPanelConnection.setLayout(null); 
            jPanelConnection.setVisible(true); 
        } 
        return jPanelConnection; 
    }
```


----------



## Guest (13. Apr 2005)

```
new ConnectionPanel()
```


----------



## Guest (13. Apr 2005)

Genau diese Anweisung in deiner ersten Klasse sorgt dafür, dass eine Instanz der zweiten erstellt wird, und sich das Panel öffnet. Wobei du bei einem Panel für sich genommen nicht viel siehst.


----------



## Guest (14. Apr 2005)

wenn ich es mit diesem Befehl mache und es ausprobiere wird mein Panel aber nicht angezeigt.


```
public void actionPerformed(java.awt.event.ActionEvent e) { 
                    //System.out.println("actionPerformed()"); 
                    new ConnectionPanel()
                }
```

Es sind natürlich noch weitere Labels, Buttons und TextFields in meinem ConnectionPanel vorhanden. Den code dafür habe ich aber nicht gepostet.


----------



## Guest (14. Apr 2005)

habe des prob gelöst so wie ich es wollte.
bei Klick auf denn Button wird nun das Panel aus der anderen Klasse angezeigt.

habe im Connection Panel (das Panel das sich öffnen soll) eine setMethode() hinzugefügt:

```
public void setJPanelConnection(boolean x)
	{
		jPanelConnection.setVisible(x);
	}
```

und in der klasse in welcher das Panel angezeigt werden folgendes hinzugefügt:

```
ConnectionPanel connectionGUI = new ConnectionPanel();

//Methode JContentPane:
//ConnectionGUI dem ContentPane hinzufügen aber als nicht sichtbar anzeigen
			jContentPane.add(connectionGUI.getJPanelConnection());
			connectionGUI.setJPanelConnection(false);

//mein JMenuItem
public void actionPerformed(java.awt.event.ActionEvent e) {    
					connectionGUI.setJPanelConnection(true);
				}
```


----------

