Zeilenumbruch im Jlabel

A

ash34

Gast
Hy,

ich würde gerne einen Zeilenumbruch in einem JLabel vornehmen. Leider klappen die sonst üblichen HTML Varianten wie

Java:
JLabel label = new JLabel("<html><body>Zeile1<br>Zeile2</body></html>"

bei mir nicht.

Vielleicht noch als Hintergrund:

Ich lese den Text aus dem JLabel mit
Code:
getText()
, füge dann etwas hinzu und will den hinzugefügten Text in eine neue Zeile schreiben...

Hat jemand eine Idee?

VG
 
G

Gast2

Gast
Und warum sollte die HTML Formatierung nicht gehen? Alten Text auslesen und vor "</body></html>" deinen neuen Text einfügen?
 
A

ash34

Gast
Naja, selbst ohne hinzufügen, nur wenn ich den Text des Labels setzen will, klappt das schon nicht...

Java:
JLabel box = new JLabel("<html><body>Textzeile1<br>Textzeile2</body></html>");
 

xehpuk

Top Contributor
Klappt bei mir hiermit:
Java:
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class HtmlLabel {
	public static void main(final String... args) {
		SwingUtilities.invokeLater(new Runnable() {
			@Override
			public void run() {
				final JFrame f = new JFrame();
				f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				f.add(new JLabel("<html><body>Textzeile1<br>Textzeile2</body></html>"));
				f.pack();
				f.setLocationRelativeTo(null);
				f.setVisible(true);
			}
		});
	}
}
Bei dir nicht?
 
A

ash34

Gast
Hmm..das funktioniert...

Hier mal meine Klasse:

Java:
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * 
 * BoxPanel contains all boxes that can be set out of the upper list of boxes in the frame
 * @author florian
 *
 */

public class BoxPanel extends JPanel{

	private static final long serialVersionUID = 1L;
	
		protected GUI gui;
		
		private List<JLabel> boxList;
	    private Color color;
	    
	    private final int standardWidth;
	    private final int standardHeight;
	    private final int fourBitWidth;
	    private final int eightBitWidth;
	    private final int sixteenBitWidth;
	    private final int twentyfourBitWidth;
	    private final int thirtytwoBitWidth;
	    private final int fourtyeightBitWidth;
        
	        /**
	         * Constructor
	         * 
	         */
	        
	public BoxPanel(GUI gui) {
		
		this.gui = gui;
		this.color = Color.WHITE;

	    boxList = new ArrayList<JLabel>();
	    
	    standardWidth = (int) gui.frameDim.getWidth()/15;
	    standardHeight = (int) gui.frameDim.getHeight()/19;
	    fourBitWidth = standardWidth;
	    eightBitWidth = (int) (fourBitWidth*1.5);
	    sixteenBitWidth = (int) (eightBitWidth*1.5);
	    twentyfourBitWidth = (int) ((sixteenBitWidth + eightBitWidth)*0.75);
	    thirtytwoBitWidth = (int) (sixteenBitWidth*1.5);
	    fourtyeightBitWidth = (int) ((thirtytwoBitWidth + sixteenBitWidth)*0.75);

	}
	               
	public void fillBoxPanel(){
	    	
		String[] boxText = {"Checksum ","Code ","Data ","HdrLen ","HdrChecksum ",
							"FOS ","Identifier ","TotalLength ",
							"Length/Type ","Options ","Pad ","PacketID ",
							"Protocol ","Präambel ","SeqNumr ",
							"SourAddr(Eth) ","SourAddr(IP) ","TarAddr(Eth) ",
							"TarAddr(IP) ","TOS ","TTL ","Type ","Vers "};
		
	    	
		int n = 0;						// horizontal gap between boxes
		int m = 40; 					// vertical gap between boxes
		int rowCount = 12; 				// amount of boxes in one row 
		int x = 45;						// vertical gap for the first box (related to (0,0))
		int y = 5;						// horizontal gap for the first box (related to (0,0))
		int width = standardWidth;		// width of a normal box
		int height = standardHeight;	// height of a normal box

//		creating boxes, setting color and text to each of the boxes
	    		
		for(int i=0; i<boxText.length; i++){
	    			
			if(i < rowCount){					
				JLabel box = new JLabel("<html><body>Textzeile1<br>Textzeile2</body></html>");
				box.setName(boxText[i]);
				box.setSize(width, height);
				box.setLocation(new Point(x+n,y));
				box.setForeground(color);
				box.setFont(new Font("Dialog", 0, 10));
				this.boxList.add(box);
				n = width*(i+1)+(i+1)*4;
	   			}
	    			
			if(i == rowCount){
	    		n=0;
	    		JLabel box = new JLabel(boxText[i]);
	    		box.setName(boxText[i]);
				box.setSize(width, height);
				box.setLocation(new Point(x+n,y+m));
				box.setForeground(color);
				box.setFont(new Font("Dialog", 0, 10));
				this.boxList.add(box);
	    		n = width*(i-11)+(i)*4;
	    		}
	    			
	    	if(i > rowCount){
	    		JLabel box = new JLabel(boxText[i]);
	    		box.setName(boxText[i]);
				box.setSize(width, height);
				box.setLocation(new Point(x+n,y+m));
				box.setForeground(color);
				box.setFont(new Font("Dialog", 0, 10));
				this.boxList.add(box);
	    		n = width*(i-11)+(i)*4;
	    		}
	    }
	}
	
	public int getStandardHeight(){
		return this.standardHeight;
	}
	        
	public List<JLabel> getBoxList(){
	  	return this.boxList;
	}
	
	public int getFourBitWidth(){
		return this.fourBitWidth;
	}
	
	public int getEightBitWidth(){
		return this.eightBitWidth;
	}
	
	public int getSixteenBitWidth(){
		return this.sixteenBitWidth;
	}
	
	public int getTwentyFourBitWidth(){
		return this.twentyfourBitWidth;
	}
	
	public int getThirtytwoBitWidth(){
		return this.thirtytwoBitWidth;
	}
	
	public int getFourtyeightBitWidth(){
		return this.fourtyeightBitWidth;
	}
	        
	public void paintComponent(Graphics g) {
	   super.paintComponent(g);
	   Graphics2D g2 = (Graphics2D)g.create();
	   if(!boxList.isEmpty()){
		   for(int i=0; i<boxList.size(); i++){
			   JLabel label = boxList.get(i);
		
		   g2.setColor(Color.BLACK);
		   g2.drawRect(label.getX(), label.getY(), label.getWidth(), label.getHeight());
		   g2.setColor(label.getForeground());
		   g2.fillRect(label.getX(), label.getY(), label.getWidth(), label.getHeight());
		   g.setFont(label.getFont());
		   g.drawString(label.getText(), label.getX()+2, label.getY()+11);
//		   g2.dispose();
		   }
	   }
	}
}

Komisch..eigentlich mach ich das ja genauso..
 

Pentalon

Bekanntes Mitglied
Dieses Thema gam es vor einiger Zeit schon mal hier im Forum:

Java:
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
 
public class JLabelTest {
 
    public static void main(String[] args) {

        JFrame frame = new JFrame();
        frame.setLayout(new GridLayout(2,2));
        JLabel lab1 = new JLabel ("1. 2. 3.");
        JLabel lab2 = new JLabel ("<html>1. Labelzeile<br>2. Labelzeile<br>3. Labelzeile</html>");
        JLabel lab3 = new JLabel ("<html>Zeile1<br>Zeile2<br>Zeile3<br>Zeile4<br>Zeile5<html>");
        frame.add(lab1);
        frame.add(lab2);
        frame.add(lab3);
        
        frame.setVisible(true);
    }
}

Pentalon
 

tschero

Aktives Mitglied
Hi,

soweit ich das gerade erkenne, hast Du nur in dieser Bedingung einen HTML Text:

Java:
if(i < rowCount){                   
                JLabel box = new JLabel("<html><body>Textzeile1<br>Textzeile2</body></html>");
                box.setName(boxText[i]);
                box.setSize(width, height);
                box.setLocation(new Point(x+n,y));
                box.setForeground(color);
                box.setFont(new Font("Dialog", 0, 10));
                this.boxList.add(box);
                n = width*(i+1)+(i+1)*4;
                }

ansonsten sind es nur "normale" Strings.

Hier wird der Text eines JLabels in mehreren Zeilen untereinander Zentriert.

Gruß

tschero
 
Zuletzt bearbeitet:
A

ash34

Gast
Hi,

soweit ich das gerade erkenne, hast Du nur in dieser Bedingung einen HTML Text:

...

ansonsten sind es nur "normale" Strings.

Das ist mir bewusst und auch beabsichtigt. Wenn es in diesem Fall klappt, übernehm ich es für die anderen Fälle ;)

welche Farbe haben die Label (Hintergrund) und der Text darauf?

Die Initialfarbe ist weiß, beim draufklicken werden die Labels Gelb (Foreground). Der Background ist nicht gesetzt..

Könnte es vielleicht dran liegen, dass ich die JLabel nicht zum Panel hinzufüge, sondern sie in eine Liste schreibe und sie dann zeichne?

EDIT: Genau daran liegt es... :eek:
Kann ich das irgendwie umgehen..??
 
Zuletzt bearbeitet von einem Moderator:
A

ash34

Gast
[STRIKE]Daran hatte ich auch schon gedacht..
Das Problem ist nur, dass dann sämtliche Parameter (Größe, Position, etc) verloren gehen...[/STRIKE]

Hat sich soeben erledigt :oops:

Danke an alle für die Hilfe :toll:
 

tschero

Aktives Mitglied
Wenn Du eine Liste von JLabels hast, geht Dir doch kein Parameter verloren. ???:L

z.B.

Java:
private LinkedList<JLabel> labelList = new LinkedList<JLabel>();
labelList.add("eines Deiner JLabel");

Was genau geht Dir denn hierbei verloren?


EDIT: zu spät
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JUNSKI Zeilenumbruch JLabel Java Basics - Anfänger-Themen 1
M Zeilenumbruch in JLabel Java Basics - Anfänger-Themen 51
chik Zeilenumbruch in einem JLabel Java Basics - Anfänger-Themen 6
M JLabel - Zeilenumbruch Java Basics - Anfänger-Themen 2
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
Dawinartor Klassen Zeilenumbruch in JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 8
S \n nicht in Zeilenumbruch umwandeln Java Basics - Anfänger-Themen 5
S Zeilenumbruch mit Scanner erkennen Java Basics - Anfänger-Themen 9
M Zeilenumbruch ab der 10. Zahl Java Basics - Anfänger-Themen 11
C Stringbuffer auf Zeilenumbruch überprüfen Java Basics - Anfänger-Themen 14
F StringBuilder: Zeilenumbruch nach x Zeichen ohne Worttrennung Java Basics - Anfänger-Themen 1
C Zeilenumbruch für langes Strings Java Basics - Anfänger-Themen 2
I Zeilenumbruch im mailto-body Java Basics - Anfänger-Themen 5
D Zeilenumbruch- .txt-Ausgabedatei Java Basics - Anfänger-Themen 10
AssELAss Xml nur nach End-Tag Zeilenumbruch?? Java Basics - Anfänger-Themen 7
A Zeilenumbruch im Code Java Basics - Anfänger-Themen 5
E Zeilenumbruch!? Java Basics - Anfänger-Themen 3
M ArrayList || Bei Ausgabe nach jedem 10. Eintrag Zeilenumbruch Java Basics - Anfänger-Themen 7
M Zeilenumbruch in JTextarea Java Basics - Anfänger-Themen 4
J Input/Output Datei - Zeilenumbruch einlesen Java Basics - Anfänger-Themen 10
B Zeilenumbruch (zweidim. Matrix) Java Basics - Anfänger-Themen 2
N Denkanstoß Zeilenumbruch Java Basics - Anfänger-Themen 9
M Zeilenumbruch JTextPane Java Basics - Anfänger-Themen 2
C jTable in .txt - versteckter Zeilenumbruch? Java Basics - Anfänger-Themen 6
T Datentypen Zeilenumbruch im String (2-dimensionales array) Java Basics - Anfänger-Themen 4
D Zeilenumbruch für XMl File Java Basics - Anfänger-Themen 3
C Zeilenumbruch verhindern / Clrscr ? Java Basics - Anfänger-Themen 3
T System.out.printf Zeilenumbruch nach x Stellen Java Basics - Anfänger-Themen 4
A Abfrage Zeilenumbruch+.+Zeilenumbruch Java Basics - Anfänger-Themen 17
c_sidi90 jTextarea kein Zeilenumbruch erlauben Java Basics - Anfänger-Themen 4
O TxT Zeilenumbruch Java Basics - Anfänger-Themen 4
E Zeilenumbruch von String schneiden Java Basics - Anfänger-Themen 13
E Zeilenumbruch in JButton mit Variable Java Basics - Anfänger-Themen 2
M Zeilenumbruch nach x Zeichen Java Basics - Anfänger-Themen 8
C textfield zeilenumbruch Java Basics - Anfänger-Themen 2
M "spezieller" Zeilenumbruch beim Kopieren Java Basics - Anfänger-Themen 3
S Zeilenumbruch awt.textarea Java Basics - Anfänger-Themen 16
M BufferedReader.readline() Unix/Windows Zeilenumbruch Java Basics - Anfänger-Themen 4
J Zeilenumbruch in Java Java Basics - Anfänger-Themen 2
J Zeilenumbruch in Java zwischen zwei Strings Java Basics - Anfänger-Themen 6
G Problem mit Zeichen Zeilenumbruch sieht aus wie(Eckige Null) Java Basics - Anfänger-Themen 4
V Zeilenumbruch bei der Eingabe verhindern Java Basics - Anfänger-Themen 6
W Text mit Zeilenumbruch zeichnen? Java Basics - Anfänger-Themen 5
S Weicher Zeilenumbruch? Java Basics - Anfänger-Themen 2
M Konsolenausgabe ohne Zeilenumbruch Java Basics - Anfänger-Themen 3
G Zeilenumbruch in einem String Java Basics - Anfänger-Themen 21
0 Zeilenumbruch funktioniert nicht Java Basics - Anfänger-Themen 4
N automatischer Zeilenumbruch Java Basics - Anfänger-Themen 3
N zeilenumbruch einfügen Java Basics - Anfänger-Themen 3
B Char Feld -> "Zeilenumbruch" Java Basics - Anfänger-Themen 5
M Am Ende eines Strings den Zeilenumbruch entfernen Java Basics - Anfänger-Themen 1
K Zeilenumbruch entfernen aus datei ?!?!? Java Basics - Anfänger-Themen 18
R Zeilenumbruch in einer Datei Java Basics - Anfänger-Themen 8
M sting komplett bearbeiten und nicht nach zeilenumbruch ende Java Basics - Anfänger-Themen 3
G Zeilenumbruch Java Basics - Anfänger-Themen 20
G Automatischer Zeilenumbruch bei einer TextArea Java Basics - Anfänger-Themen 16
G Zeilenumbruch in String variable Java Basics - Anfänger-Themen 4
F Zeilenumbruch Java Basics - Anfänger-Themen 9
L Plattformunabhängiger Zeilenumbruch Java Basics - Anfänger-Themen 2
G Zeilenumbruch aus String entfernen ? Java Basics - Anfänger-Themen 13
J neuer Zeilenumbruch in Datei Java Basics - Anfänger-Themen 7
L Zeilenumbruch Java Basics - Anfänger-Themen 3
D zeilenumbruch feststellen Java Basics - Anfänger-Themen 8
D zeilenumbruch EOF Java Basics - Anfänger-Themen 2
D ausgabe verändern (statt zeilenumbruch leerzeichen) Java Basics - Anfänger-Themen 2
B In einem Label "Zeilenumbruch" Java Basics - Anfänger-Themen 4
T BufferedWriter Zeilenumbruch Java Basics - Anfänger-Themen 2
P Borland Jbuilder X - Zeilenumbruch im Source Code ? Java Basics - Anfänger-Themen 2
D FileWriter write? Zeilenumbruch ? Java Basics - Anfänger-Themen 4
T JTable, DB, Zeilenumbruch Java Basics - Anfänger-Themen 25
K Zeilenumbruch in Datei schreiben Java Basics - Anfänger-Themen 2
V Zeilenumbruch in Tooltips Java Basics - Anfänger-Themen 13
T readLine ohne anschließenden Zeilenumbruch? Java Basics - Anfänger-Themen 2
G wie 'tabs' und 'zeilenumbruch' in textfile einbauen? Java Basics - Anfänger-Themen 5
G gesteuerter Zeilenumbruch Java Basics - Anfänger-Themen 2
G jEditorPane: inhalt ohne zeilenumbruch darstellen. wie? Java Basics - Anfänger-Themen 3
D Zeilenumbruch & Überschrift Java Basics - Anfänger-Themen 12
N Zeilenumbruch im StringTokenizer?? Java Basics - Anfänger-Themen 4
B Zeilenumbruch blos wie? Java Basics - Anfänger-Themen 4
M Zeilenumbruch im Textfeld Java Basics - Anfänger-Themen 5
G automatischer Zeilenumbruch Java Basics - Anfänger-Themen 5
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
J JLabel bzw. Image Icon mit KeyEvent bewgen Java Basics - Anfänger-Themen 9
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
Tom/S JLabel Icon Farbe Java Basics - Anfänger-Themen 2
N Variabel in eine class mit "extends JLabel" übertragen Java Basics - Anfänger-Themen 2
S Kontrollieren, ob ein Jlabel nicht sichtbar ist Java Basics - Anfänger-Themen 6
S Input/Output JLabel verschieben Java Basics - Anfänger-Themen 7
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
CptK Interface JLabel bewegt sich nicht sondern teleportiert sich... Java Basics - Anfänger-Themen 3
CptK Methoden JLabel erstellen & verschieben Java Basics - Anfänger-Themen 1
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
A JLabel mit button drücken verändern Java Basics - Anfänger-Themen 6
CptK JLabel im Array Java Basics - Anfänger-Themen 2
L Threads Mit Threads JLabel ändern! Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben