2 Layouts verwenden in Java?

... komplette Frage anzeigen

2 Antworten

Ja, das ist möglich.

Sagen wir: Du hast ein Panel das wie ein Borderlayout funktioniert. 

Wenn du weitere Panels an dieses Panel anfügst, fügst du diese an entsprechende Position an via add():

borderlayoutPanel.add(panel, Borderlayout.NORTH);

Das Panel was dort jeweils platzierst, kann natürlich wieder ein eigenes Layout haben, wie du sagtest: GridLayout.

Hier ein kleines Beispiel. Mit Farben lässt sich das vielleicht dann doch leichter darstellen:

JFrame frame = new JFrame();
JPanel borderLayoutPanel = new JPanel(new BorderLayout());

JPanel panelNorth = new JPanel(); panelNorth.setBackground(Color.green); borderLayoutPanel.add(panelNorth, BorderLayout.NORTH); JPanel panelCenterGrid = new JPanel(new GridLayout(2, 2)); panelCenterGrid.setBackground(Color.yellow); borderLayoutPanel.add(panelCenterGrid, BorderLayout.CENTER);
JPanel gridPanel1 = new JPanel(); gridPanel1.setBackground(Color.red); panelCenterGrid.add(gridPanel1);
JPanel gridPanel2 = new JPanel(); gridPanel2.setBackground(Color.blue); panelCenterGrid.add(gridPanel2);
JPanel gridPanel3 = new JPanel(); gridPanel3.setBackground(Color.pink); panelCenterGrid.add(gridPanel3);
JPanel gridPanel4 = new JPanel(); gridPanel4.setBackground(Color.black); panelCenterGrid.add(gridPanel4);
frame.setContentPane(borderLayoutPanel); frame.setSize(300, 300); frame.setVisible(true);
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Dieter987
25.05.2016, 19:01

Vielen Dank, das ist sehr hilfreich.

1

Wie soll das bitte aussehen?
Du kannst nur Schachteln, also dass zB in einem Teil des BorderLayouts ein Grid ist.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Dieter987
25.05.2016, 18:52

Ich muss das Layout ja setzen mit f.setLayout. Wie kann ich da schachteln?

0
Kommentar von androhecker
25.05.2016, 19:01

Ein JPanel erstellen welches ein GridLayout hat, dieses Panel musst du dann in das BorderLayout hinzufügen.

0

Was möchtest Du wissen?