2 Layouts verwenden in Java?
Hallo,
kann man 2 Layouts verwenden also kombinieren in Java. Ich glaube nicht weil man muss es ja festsetzen und wenn man das eine und das andere setzt wird das zweite das erste überschreiben.
z.B. ich möchte jetzt Border und Grid Layout zusammen verwenden ist das möglich?
Vielen Dank im Voraus
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);
Wie soll das bitte aussehen?
Du kannst nur Schachteln, also dass zB in einem Teil des BorderLayouts ein Grid ist.
Ein JPanel erstellen welches ein GridLayout hat, dieses Panel musst du dann in das BorderLayout hinzufügen.
Ich muss das Layout ja setzen mit f.setLayout. Wie kann ich da schachteln?
Vielen Dank, das ist sehr hilfreich.