webForumDet fria alternativet

Ny rad i en applet

Java

13 svar · 465 visningar · startad av fickel

Medlem sedan sep. 200210 inlägg
Frågan#1

Hej alla glada!

Jag blir helt galen, kan inte göra en ny rad i en applet. I ett vanligt stand-alone-programm går det hur fint som helst med \n, men i appleten blir det bara en fyrkant istället.

Lite kod:

import java.awt.*;
import java.applet.*;

public class InteNyRadIallafall extends Applet {

	public void init() {
		
		String hälsning = "Inte en \n ny rad";
		Label l = new Label(hälsning);
		setLayout(new GridLayout(1, 1));
		add(l);
		l.setBackground(Color.white);
		l.setForeground(Color.black);
		l.setFont(new Font("Verdana", Font.BOLD, 12));
	}
}

Tack på förhand!

Medlem sedan mars 20034 471 inlägg
#2

Det skulle *kanske* kunna bero på att en Label inte utnyttjar två rader om den inte blir för lång?

Medlem sedan sep. 200210 inlägg
#3

Jaha, där ser man. Jag borde kanske tillägga att jag är helt jättegrön på Java. Hur ska jag göra istället? Jag vill ju att det ska radbryta av sig själv, inte använda flera Label i flera Grids så att säga.

Medlem sedan mars 20034 471 inlägg
#4

Men... om du vill att den ska radbryta av sig själv kan det väl inte vara något problem? :q Skriv strängen utan radbrytningstecken bara, det borde funka, tror jag.

Medlem sedan sep. 200210 inlägg
#5

Problemet är att det inte gör det. Om variabeln hälsning innehåller en lång mening eller text så bryts inte raden av. Det bara fortsätter utanför appletens bredd. Jätteskumt, jättejobbigt.

Medlem sedan aug. 20021 752 inlägg
#6

Vad jag vet så har inte en label radbrytning i Java. Om du vill ha det så får du subklassa en label och göra egna funktioner för att hantera 2 (eller fler) rader.

Ett annat tips är att söka på Google efter "multiline label awt java"

/Viktor

Medlem sedan sep. 200210 inlägg
#7

Ok, tack. Ska söka vidare för att lösa detta tydligen komplexa problem.

Medlem sedan sep. 2001961 inlägg
#8

Ett knep är att använda html-kod i texten...

<html>Jag vill att<br>min label ska<br>bryta över flera rader<br></html>

Om man får in en sträng är det enkelt att söka ut \n och ersätta dessa med <br>

/Lime

Medlem sedan aug. 20021 752 inlägg
#9

Jag tror det bara fungerar i Swing, inte AWT som används i Applets.

/Viktor

Medlem sedan sep. 2001961 inlägg
#10

Eh? Om du skriver en JApplet så är det Swing.

Och en snabb empirisk undersökning säger att det funkar.

/Lime

Medlem sedan aug. 20021 752 inlägg
#11

Men denna person skriver en Applet, inte en JApplet :)

Och en snabb empirisk undersökning säger att det funkar.

Label eller JLabel?

/Viktor

Medlem sedan sep. 2001961 inlägg
#12

JLabel. Varför skriva en Applet när det finns JApplet?

Medlem sedan aug. 20021 752 inlägg
#13

Microsoft :e

Många kör ju fortfarande med Microsofts JVM, v1.1.6(?), innan Swing.

/Viktor

Medlem sedan sep. 2001961 inlägg
#14

Ja? Och? Finns det någon orsak att förlita sig på användaren och inte köra sin applet i en Java-plugin?

/Lime

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)