Wie kann ich in Java bei einem JLabel einen Zeilenumbruch erstellen?
Ich möchte die JLabel "Zeile1" und "Zeile2" untereinander schreiben... weiß aber nicht wie ich das anstellen soll
public class Test {
public static void main(String[] args) {
JFrame fenster = new JFrame();
setupContent(fenster);
fenster.setSize(500,500);
fenster.setMinimumSize(new Dimension(100,100));
fenster.setVisible(true);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private static void setupContent(JFrame fenster) {
JPanel content = new JPanel ();
JLabel Zeile1= new JLabel("Zeile1");
JLabel Zeile2= new JLabel("das hier soll in die zweite Zeile!");
content.add(Zeile1);
content.add(Zeile2);
fenster.setContentPane(content);
}
}
3 Antworten
probier mal das:
JLabel zeile = new JLabel();
zeile.setText("<html><body>Zeile 1<br>das hier soll in die zweite Zeile!</body></html>")
PS: nicht selbst getestet
Funktioniert doch. Wenn du es umbedingt festlegen willst, könnteste noch n GridLayout setzen.
Mhh interessant.
Dann mal als Idee:
content.setLayout(new GridLayout(2,1));
Problem dabei ist, dass das GridLayout den kompletten Platz belegt.
Ansonsten könntest du (je nachdem was du vor hast) vll. noch ne TextArea verwenden und die Bearbeitung deaktivieren.
JTextArea label = new JTextArea();
label.setText("Zeile1 \n das hier soll in die zweite Zeile!");
label.setEditable(false);
content.add(label);
Ich hatte vor. Neben die untere Zeile noch ein Textfield und einen Button zu setzen,
die 1 Zeile ist länger als die zweite, das ist der Original code
private static void setupContent(JFrame fenster) {
JPanel content = new JPanel ();
JButton Knopf = new JButton ("OK");
JLabel Text = new JLabel ("<html><i><b><span style=\"color:white\">Probleme :</b></i></html></span>");
JTextField Textfeld = new JTextField(20);
JLabel Text2 = new JLabel ();
JLabel Text3 = new JLabel ("<html><span style=\"color:white\">Eine Zeile mit 4 Wörtern (2018)</span></html>");
content.add(Text3);
content.add(Text);
content.add(Textfeld);
content.add(Knopf);
content.add(Text2);
fenster.setContentPane(content);
fenster.getContentPane().setBackground(Color.black);
Meinste etwas in die Richtung?
private static void setupContent(JFrame fenster) {
JPanel content = new JPanel ();
content.setLayout(new GridLayout(2,1));
JLabel Zeile1= new JLabel("Zeile1");
content.add(Zeile1);
setupLowerContent(content);
fenster.setContentPane(content);
}
private static void setupLowerContent(JPanel jp) {
JPanel contentLower = new JPanel ();
JTextField jt = new JTextField("abc");
JButton button = new JButton("button");
contentLower.setLayout(new GridLayout(1,3));
JLabel Zeile2= new JLabel("das hier soll in die zweite Zeile!");
contentLower.add(Zeile2);
contentLower.add(button);
contentLower.add(jt);
jp.add(contentLower);
}
Probier es doch mal mit einem Zeilenumbruch im Label.
Also: „Das hier ist Zeile eins!\nDas hier ist Zeile zwei!“
also meinst du die beiden Label in 1 schreiben?
(das unten hat nicht funktioniert)
JLabel Zeile1= new JLabel("Zeile1 \n das hier soll in die zweite Zeile!");
content.add(Zeile1);
Wow, ich wusste echt nicht, dass das nicht funktioniert. Erstaunlich.
Das hier ist zwar etwas umständlich, sollte aber gehen:
<html>Erste Zeile!<br>Zweite Zeile!</html>
Ist aber echt unschön😁
Das klappt Danke sieht zwar wirklich etwas seltsam aus, weil das Textfield noch ne Zeile drunter ist aber ich bin zufrieden vielen danke :)
Sorry ich bin ein blutiger Anfänger... ich weiß nicht was das heißt, aber so wies oben steht wird das Ausgegeben (in einer Zeile)