# JPanel in ein JFrame einfügen



## Phil84 (5. Jun 2006)

Hallo,
ich beschäftige mich jetzt schon einige Stunden mit der eigentlich völlig simplen Frage, wie ich in ein JPanel ein JFrame einfügen kann.

Das habe ich bisher:


```
public class SimpleApp2 extends JFrame {


 public SimpleApp2() {

   
   JPanel panel = new JPanel();
   // deckend setzen
   // ist eigentlich schon der Standardwert
   panel.setOpaque(true);
   panel.setBackground(Color.yellow);
   panel.setLayout(new BorderLayout());
   panel.add(new JLabel("Panel"));
   panel.setVisible(true);
   getContentPane().add(panel);
```
...

Ich sehe aber nur ein Fenster mit allen möglichen Sachen die ich einfüge, aber das Panel sehe ich nicht.
Kann mir jemand weiterhelfen?
Gruß, Philipp


----------



## L-ectron-X (5. Jun 2006)

Geht das?

```
import javax.swing.*;
import java.awt.*;

public class SimpleApp2 extends JFrame {

   public SimpleApp2(String title) {
      super(title);
      setSize(400, 300);
      setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      
      JPanel panel = new JPanel();
      panel.setBorder(new javax.swing.border.TitledBorder("JPanel"));
      panel.setBackground(Color.yellow);
      panel.setLayout(new BorderLayout());
      panel.add(new JLabel("JLabel"));
      getContentPane().add(panel);
   }
   
   public static void main(String[] args) {
      new SimpleApp2("SimpleApp2").setVisible(true);
   }
}
```


----------



## Phil84 (5. Jun 2006)

Schonmal danke für die schnelle antwort.
Es funktioniert leider nicht. Meine main sieht so aus:


```
public static void main(String[] argv) {
   new SimpleApp2();
 }
```

Ich sehe auch alles was ich sonst noch einfüge (Buttons, textfelder...). Bloß dieses Panel will nicht   

Gruß, Philipp


----------



## L-ectron-X (5. Jun 2006)

Zeig mal den kompletten Code dieser Klasse.


----------



## Phil84 (5. Jun 2006)

Hier ist der komplette Code. Es sind aber viele nicht relevante Sachen drin. Ich will eigentlich nur wissen, wie man ein JPanel einfügt. Ich musss gleich weg. Ich schaue dann heute Abend wieder rein. Vielen Dank schonmal. Gruß, Philipp


```
package pack2;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class SimpleApp2 extends JFrame {

 /**
  * Konstruktor
  */
 public SimpleApp2() {
   // Der Titel des Fensters soll der
   // Name der Klasse sein
   super(SimpleApp2.class.getName());

   
   JPanel panel = new JPanel();
   // deckend setzen
   // ist eigentlich schon der Standardwert
   panel.setOpaque(true);
   panel.setBackground(Color.yellow);
   panel.setLayout(new BorderLayout());
   panel.add(new JLabel("Panel"));
   panel.setVisible(true);
   getContentPane().add(panel);
   
   // Layout-Manager setzen
   getContentPane().setLayout(new BorderLayout());

   // Ein Textfeld oben an den Rand setzen
   getContentPane().add(new JTextField("Texteingabe"),
                            BorderLayout.NORTH);

   // Button anlegen
   JButton button = new JButton("Klick mich!");
   // Der Button soll einen Dialog starten
   // Hier wird eine anonyme, innere Klasse für das
   // Event-Handling benutzt.
   button.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
    	 
    	  JFrame f = new JFrame("Test");
    	  f.getContentPane().setLayout(new BorderLayout());
    	  f.getContentPane().add(new JButton("Drück mich"));
    	  f.setVisible(true);

    //   JOptionPane.showMessageDialog (
      //      (JButton) e.getSource(), "Danke.");
     }
   });

   // Den Button in der Mitte platzieren
   //getContentPane().add(button, BorderLayout.CENTER);

   // Größe setzen (oder pack() aufrufen)
   setSize(200, 100);
   // Wenn jemand das Fenster schließt, soll
   // die Applikation beendet werden
   // (System.exit (0) wird aufgerufen)
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   // Fenster sichtbar machen
   
   setVisible(true);
   
 }


 /**
  * Start-Methode, Aufruf über
  * java de.dpunkt.swing.SimpleApp2.SimpleApp2
  */
 public static void main(String[] argv) {
   new SimpleApp2();
 }
}
```


----------



## L-ectron-X (5. Jun 2006)

So, bitteschön, JPanel sichtbar gemacht - nicht mehr und nicht weniger...

```
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class SimpleApp2 extends JFrame {

   /**
     * Konstruktor
     */
   public SimpleApp2() {
      // Der Titel des Fensters soll der
      // Name der Klasse sein
      super(SimpleApp2.class.getName());


      JPanel panel = new JPanel();
      // deckend setzen
      // ist eigentlich schon der Standardwert

      panel.setBackground(Color.yellow);
      panel.setLayout(new BorderLayout());
      panel.add(new JLabel("Panel"));
      getContentPane().add(panel);

      // Ein Textfeld oben an den Rand setzen
      getContentPane().add(new JTextField("Texteingabe"),
                               BorderLayout.NORTH);

      // Button anlegen
      JButton button = new JButton("Klick mich!");
      // Der Button soll einen Dialog starten
      // Hier wird eine anonyme, innere Klasse für das
      // Event-Handling benutzt.
      button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {

            JFrame f = new JFrame("Test");
            f.getContentPane().add(new JButton("Drück mich"));
            f.setVisible(true);

       //   JOptionPane.showMessageDialog (
         //      (JButton) e.getSource(), "Danke.");
        }
      });

      // Den Button in der Mitte platzieren
      //getContentPane().add(button, BorderLayout.CENTER);

      // Größe setzen (oder pack() aufrufen)
      setSize(200, 100);
      // Wenn jemand das Fenster schließt, soll
      // die Applikation beendet werden
      // (System.exit (0) wird aufgerufen)
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      // Fenster sichtbar machen

      setVisible(true);
   }


   /**
     * Start-Methode, Aufruf über
     * java de.dpunkt.swing.SimpleApp2.SimpleApp2
     */
   public static void main(String[] argv) {
      new SimpleApp2();
   }
}
```


----------



## Phil84 (5. Jun 2006)

Vielen Dank. Endlich funktioniert es. Ich habe übrigens in der Zwischenzeit noch einen anderen Weg gefunden. Man kann dem Panel mit SetBounds eine Größe zuweisen. Dann wird es auch sichtbar.

Dann schönen Dank nochmal. Bis die Tage, Philipp


----------

