2 Layouts verwenden in Java?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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);

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

Dieter987 
Fragesteller
 25.05.2016, 18:52

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

0
androhecker  25.05.2016, 19:01

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

0