Text in der Mitte von Komponenten platzieren: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
K
 
(9 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
JButtons stellen Text standardmäßig mittig an.
+
JButtons stellen Text standardmäßig mittig dar.
 
 
Bei selbsterzeugten "Buttons", sei es durch Zeichnen in der paintComponent()-Methode oder Verwenung eines JLabels ist das aber nicht der Fall.
 
  
 +
Bei selbsterzeugten Schaltflächen durch Zeichnen in der paintComponent()-[[Methode]], oder Verwendung eines {{JAPI|JLabel}} ist das aber nicht der Fall.
  
 
= Buttons selbst zeichnen =
 
= Buttons selbst zeichnen =
Ihr braucht einen Font, einen eigens programmierten Button, und natürlich Text, der im ausgewählten Font formtatiert ist.
+
Ihr braucht einen Font, einen eigens programmierten Button, und natürlich Text, der im ausgewählten {{JAPI|Font}} formatiert ist.
  
<code=java>
+
<syntaxhighlight lang="java">
 
xPosOfText = ((button.getWidth() - font.getWidth(text)) / 2);
 
xPosOfText = ((button.getWidth() - font.getWidth(text)) / 2);
</code=java>
+
</syntaxhighlight>
 +
 
 +
Um die y-Koordinate zu berechnen muss man das Gleiche machen, nur mit <syntaxhighlight lang="java">.getHeight()</syntaxhighlight>
 +
<syntaxhighlight lang="java">
 +
yPosOfText = ((button.getHeight() - font.getHeight()) / 2);
 +
</syntaxhighlight>
  
= Buttons, die ein JLabel als Basis nutzen =
+
Man kann einfache, grafische Buttons auch mit einem JLabel erzeugen, in dem man eine [[Hintergrundbild in eine GUI einfügen (Java)|Grafik als Hintergrund]] einbaut.<br>
Bei dieser Methode kann das bereits im Konstruktor festgelegt werden.
+
Der Text bleibt davon aber unberührt und wird daher standardmäßig linksbündig dargestellt.
  
<code=java>
+
= Text in JLabel zentrieren =
 +
Bei dieser Methode kann das bereits im [[Konstruktor]] festgelegt werden.
 +
<syntaxhighlight lang="java">
 
JLabel label = new JLabel("<html><center><i>Mittig ausgerichteter, kursiver Text</i></center></html>");
 
JLabel label = new JLabel("<html><center><i>Mittig ausgerichteter, kursiver Text</i></center></html>");
</code=java>
+
</syntaxhighlight>
 +
oder auch durch Aufruf von Methoden:
 +
<syntaxhighlight lang="java">
 +
JLabel label = new JLabel("Mittig ausgerichteter Text");
 +
label.setHotizontalAlignment(JLabel.CENTER);
 +
</syntaxhighlight>
  
[[Kategorie:Java]]
+
[[Kategorie:Swing]]
 
[[Kategorie:Java-Codeschnipsel]]
 
[[Kategorie:Java-Codeschnipsel]]

Aktuelle Version vom 27. Juni 2022, 12:21 Uhr

JButtons stellen Text standardmäßig mittig dar.

Bei selbsterzeugten Schaltflächen durch Zeichnen in der paintComponent()-Methode, oder Verwendung eines JLabel ist das aber nicht der Fall.

Buttons selbst zeichnen

Ihr braucht einen Font, einen eigens programmierten Button, und natürlich Text, der im ausgewählten Font formatiert ist.

xPosOfText = ((button.getWidth() - font.getWidth(text)) / 2);

Um die y-Koordinate zu berechnen muss man das Gleiche machen, nur mit

.getHeight()
yPosOfText = ((button.getHeight() - font.getHeight()) / 2);

Man kann einfache, grafische Buttons auch mit einem JLabel erzeugen, in dem man eine Grafik als Hintergrund einbaut.
Der Text bleibt davon aber unberührt und wird daher standardmäßig linksbündig dargestellt.

Text in JLabel zentrieren

Bei dieser Methode kann das bereits im Konstruktor festgelegt werden.

JLabel label = new JLabel("<html><center><i>Mittig ausgerichteter, kursiver Text</i></center></html>");

oder auch durch Aufruf von Methoden:

JLabel label = new JLabel("Mittig ausgerichteter Text");
label.setHotizontalAlignment(JLabel.CENTER);