Komponente zentrieren
Möchte man eine Komponente wie z.B. ein Label oder einen Button
innerhalb eines Containers ( JWindow, JFrame, JPanel
,
etc.) zentrieren, so lässt sich dies auf einfache Weise
über ein GridBagLayout
erledigen.
import java.awt.GridBagLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingUtilities; public class KomponenteZentrieren { public KomponenteZentrieren() { JFrame frame = new JFrame(); frame.setLayout(new GridBagLayout()); frame.setSize(300, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel label = new JLabel("Hallo Welt!"); frame.add(label); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> new KomponenteZentrieren()); } }
Im Beispiel werden im Konstruktor der Klasse je ein JFrame
und ein JLabel
erzeugt. Das Label wird auf den Frame
gesetzt, dem vorher ein GridBagLayout
als Layoutmanager
übergeben wurde.
Üblicherweise werden dem GridBagLayout
zur
Spezifizierung GridBagConstraints
zugewiesen, die die
Feinheiten der Komponentenanordnung bestimmen. Geschieht dies nicht,
so greifen, wie in diesem Fall, deren Default-Werte. Die int
-Variable
GridBagConstraints.anchor
bestimmt hierbei die
Positionierung der hinzugefügten Komponente innerhalb ihres
Containers. Als Standard wird hier intern die statische Variable GridBagConstraints.CENTER
mit dem Wert 10 verwendet.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.