Wie kann man den Text in einem Meldungsfenster (Message Dialog) im Mittelsatz setzen?
Im gezeigten Beispiel ist eine Klasse CustomizableMessageDialog
deklariert, deren Konstruktor zwei Parameter vom Typ String
und Component
übergeben bekommt. Der erste bezieht
sich auf die Elternkomponente, an der der Dialog ausgerichtet werden
soll, der zweite enthält einen Text, der auf dem Dialog im
Mittelsatz gezeigt werden soll.
Um dies zu erreichen wird ein JLabel
erzeugt, das bekanntlich auch HTML versteht. Entsprechend wird ein
einfacher HTML-Text erzeugt, der in den Tags <html></html>
eingeschlossen ist. Zur Textzentrierung dient das veraltete und
längst als deprecated markierte center
-Tag. Hier ist schade, dass Java an dieser Stelle gar kein und an
anderen Stelle kaum CSS versteht.
Das Label und die
Komponente werden in der letzten Konstruktor-Zeile an die Methode JOptionPane.showMessageDialog()
übergeben, die hier in der einfachsten Version mit zwei
Parametern aufgerufen wird.
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JComponent;
public class CustomizableMessageDialog {
public CustomizableMessageDialog(Component comp, String message){
String txt = "<html><center>" + message + "</center></html>";
JLabel label = new JLabel(txt);
JOptionPane.showMessageDialog(comp, label);
}
public static void main(String[] args) {
new CustomizableMessageDialog(null, "Dies ist ein <br>zentrierter Text");
}
}