JPanel & JFrame

D

drosan

Hallo,
in ein JFrame soll ein Borderlayout rein. In jede Fläche von diesem wiederrum ein Panel.
Mein Code sieht momentan so aus.

public void test() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setBackground(Color.black);
frame.getContentPane().add(BorderLayout.CENTER, panel);
frame.setSize(200,200);
frame.setVisible(true);
}

Doch wie gehts nun weiter? Hänge gerade ziemlich aufm Schlach...
 
Du musst mal das Frame ein BorderLayout zuteile

Code:
public void test() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new BorderLayout);
Somit kannst du überhaup Elemente plazieren

Dann gehts weiter:
Code:
JPanel panel = new JPanel();
panel.setBackground(Color.black);
frame.add(panel, BorderLayout.CENTER);
frame.setSize(200,200);
frame.setVisible(true);
}
 
Danke für die Antwort. =)

So sieht es nun aus:

Code:
public void los() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(new BorderLayout()); 
        JPanel panel = new JPanel();
        panel.setBackground(Color.black);
        frame.add(panel, BorderLayout.CENTER);
        frame.setSize(200,200);
        frame.setVisible(true);
    }

Habe ich es nun richtig verstanden, dass ich z.B. mit

Code:
frame.add(panel, BorderLayout.EAST);

Ein weiteres Panel in des BorderLayout setze?
 
Du solltest dich mal etwas genauer mit Java Swing usw. beschäftigen bzw. einlesen...

Also, dass funktioniert so:
Alle Containerelemete in Java/Swing können ein bestimmtes Layout haben, wie sie elemente anordnen und anzeigen.

Container sind zum Beispiel
- JFrame
- JPanel

das heißt,
jeder Container hat die Methode setLayout() wo dann die verschiedenen Layoutmanager z.b. BorderLayout benutzt werden.

Die verschiedenen LayoutManager musst du dir selbst durchlesen.

Also, jetzt zurück zu dein Beispiel:
du hast ein JFrame, also einen Container. Nun kannst du sagen dass dieses JFrame die Elemente im BorderLayout dargestellt werden.
Das machst du mit
Code:
frame.setLayout(new BorderLayout);

Das bedeutet, du kannst nun auf diesen frame beliebige Elemente in die Himmelsrichtungen ausrichten.
http://openbook.galileodesign.de/javainsel5/javainsel15_009.htm#Rxx747java15009040005411F04D1C2

Man kann im BorderLayout allerdings immer nur ein Element in jede Himmelsrichtung hinzufügen ...
Code:
frame.add(Element1, BorderLayout.NORTH);
frame.add(Element2, BorderLayout.SOUTH);
frame.add(Element3, BorderLayout.WEST);
frame.add(Element4, BorderLayout.EAST);
frame.add(Element5, BorderLayout.CENTER);

Elemente können jedes belibige grafisches Objekt sein, zum Beispiel JButton, JTextField usw.

Element kann aber auch zum Beispiel ein weiterer Container sein, zum Beispiel ein JPanel.
JPanel ist ja ein Container und kann deshalb wieder beliebige Elemente geadded werden und mit setLayout() kann man wieder sagen wie die Elemente in diesem JPanel angeordnet werden ...

Ich hoffe ich konnte dir etwas helfen ...
Allerdings solltest du dich da einlesen und die grundprizipien verstanden haben, bevor du mit GUI Programmierung startest. Das ist auch gar nicht kompliziert...
 
Danke! =)
Also stimmte des.
An GUIs sitz ich schon länger, hatte jetzt allerdings ne etwas längere Pause und stand echt aufm Schlauch!
Danke für die Hilfe! :)
 

Neue Beiträge

Zurück