Ich habe JPanel mit BorderLayout. Nach SOUTH kommt ein anderes Label mit einem Button. Nach CENTER kommt ein Label mit einem Text. Um dieses Label etwa in der Mitte des Bildschirms stehen zu haben, habe ich es noch mal in ein GridBagLayout gepackt. Jetzt steht es auch in der Mitte, wie ich es mir gewünscht habe. Nur die Größe stimmt leider überhaupt nicht. setPreferredSize hat nicht die geringste Wirkung.
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
//**Card4 Anwesiung nach Übung***
public class Card4 extends JPanel {
//Deklarationsteil
JPanel zentralPanel;
JPanel suedPanel;
JLabel anweisung;
Window window;
JButton weiterButton;
//Konstruktor
public Card4(Window window){
this.window = window;
this.setLayout(new BorderLayout());
zentralPanel = new JPanel();
zentralPanel.setLayout(new BorderLayout());
anweisung = new JLabel("<html> <p align='justify'>" + "Fühlen Sie sich mit der " +
"Bedienung des Programms vertraut? Wenn Ihnen noch etwas unklar zur " +
"Bedienung oder zur Aufgabe ist,heben Sie jetzt bitte den Arm um den Versuchs-" +
"leiter auf Sie <aufmerksam zu machen. Ansonsten können Sie jetz loslegen. " +
"Bitte wählen Sie in dem Fall „Experiment beginnen“!" + "</p> </html>");
anweisung.setOpaque(true);
zentralPanel.add(anweisung, BorderLayout.CENTER);
this.add(zentralPanel, BorderLayout.CENTER);
zentralPanel.setOpaque(true);
anweisung.setBackground(Color.GREEN);
//GridBagLayout für den zentralPanel festlegen
GridBagConstraints zentralPanelConstraints = new GridBagConstraints();
zentralPanelConstraints.gridx = 0;
zentralPanelConstraints.gridy = 0;
zentralPanelConstraints.gridwidth = 2;
zentralPanelConstraints.gridheight = 1;
zentralPanel.add(anweisung);
zentralPanel.setLayout(new GridBagLayout());
//zentralPanel.setPreferredSize(new Dimension (500,500));
weiterButton = new JButton("Experiment starten");
suedPanel = new JPanel();
suedPanel.add(weiterButton);
this.add(suedPanel, BorderLayout.SOUTH);
}
}