Wie kann ich in Java bei einem JLabel einen Zeilenumbruch erstellen?

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

Woher ich das weiß:Hobby

Funktioniert doch. Wenn du es umbedingt festlegen willst, könnteste noch n GridLayout setzen.


nurdiese1Frage 
Beitragsersteller
 21.05.2018, 13:25

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)

Zeile1  das hier soll in die zweite Zeile!
0
Etter  21.05.2018, 13:28
@nurdiese1Frage

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);
1
nurdiese1Frage 
Beitragsersteller
 21.05.2018, 13:42
@Etter

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);

0
Etter  21.05.2018, 13:53
@nurdiese1Frage

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);
}
0

Probier es doch mal mit einem Zeilenumbruch im Label.

Also: „Das hier ist Zeile eins!\nDas hier ist Zeile zwei!“


nurdiese1Frage 
Beitragsersteller
 21.05.2018, 13:16

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);
0
Lamanini  21.05.2018, 13:35
@nurdiese1Frage

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😁

1
nurdiese1Frage 
Beitragsersteller
 21.05.2018, 13:47
@Lamanini

Das klappt Danke sieht zwar wirklich etwas seltsam aus, weil das Textfield noch ne Zeile drunter ist aber ich bin zufrieden vielen danke :)

0