Neue Zeile im JLabel anfangen ohne html

Hi also ich habe folgendes Problem: Ich arbeite gerade an einem Chat Programm und möchte das alles was geschrieben wird und somit auf dem JLabel angezeigt werden soll in einer einzelnen zeile bzw bei längeren Texten als eine Zeile ein zeilenumbruch entsteht. Mi der Suchfunktion bin ich nur teilweise fündig geworden.
Dort wurde immer html benutz oder derAutomatische zeilenumbruch der JTextArea.
Da aber in den Verlauf nichts geschrieben werden sollte wollte ich halt ein JLabel vewenden.Also wie geht das am einfachsten eine neue Zeile ohne html anzufangen und einen automatischen Zeilenumbruch im JLabel zu realisieren.
MFG bigboombang
 
Ohne HTML wird es schwierig werden, da müsstest du dann einige Funktionen des JLabels überschreiben, da meines Wissens ein JLabel ein automatisches umbrechen nicht unterstüzt.

Du hast drei alternativen:
1.
Du nimmst ein JTextArea: Probier doch einfach mal das zweite Beispiel WrappedLabelExample mit der Inneren Klasse WrappedLabel:
http://www.tutorials.de/forum/swing-awt-swt/241177-jlabel-mit-mehreren-zeilen.html

2.
Oder du nimmst HTML. Was steht den eigentlich dagegen, dass du kein HTML verwenden möchtest?

3.
Oder du nimmst ein fertiges Workaround. Es gibt im Web diesbezüglich ein paar Ansätze. Suche :google: einfach mal nach multiplelines jlabel oder multiline JLabel.


Vg Erdal
 
Hi also mit "Verlauf" meinte ich das wo der Geschriebene Texdt nacher unveränderbar steht bei einer Text Area kann ich aber den geschriebenen Text löschen. zwar kann dieser in einen String gespeichert werden und bei jeder Änderung neu in die TextArea geschrieben werden oder kann ich die TextArea sozusagen auf "unveränderbar " stelen also das nur das Programm den Text ändern kann?
MFG bigboombang
 
Hallo BigBoomBang,

probier das mal hier mal aus, das müsste deinen Wünschen genügen.

Java:
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;

public class WrappedLabelExample extends JFrame {
	WrappedLabel l1 = new WrappedLabel("Dies ist ein umgebrochener Satz.");

	WrappedLabel l2 = new WrappedLabel(
			"Dies ist ein umgebrochener Satz. Dies ist ein umgebrochener Satz.");

	WrappedLabel l3 = new WrappedLabel(
			"Dies ist ein umgebrochener Satz. Dies ist ein umgebrochener Satz. Dies ist ein umgebrochener Satz.");

	public WrappedLabelExample() {
		super("WrappedLabel");
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.setSize(300, 400);
		this.setLayout(new FlowLayout());

		this.add(l1);
		this.add(l2);
		this.add(l3);
	}

	public static void main(String[] args) {
		new WrappedLabelExample().setVisible(true);
	}

	class WrappedLabel extends JTextArea {
		JLabel label = new JLabel();

		public WrappedLabel(String text) {
			super(text);
			this.setEditable(false);
			this.setLineWrap(true);
			this.setWrapStyleWord(true);
			this.setFont(label.getFont());
			this.setOpaque(false);
		}
	}
}


Vg Erdal
 
Zurück