webForumDet fria alternativet

Ny rad i en applet

13 svar · 465 visningar · startad av fickel

fickelMedlem sedan sep. 200210 inlägg
#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!

aasahMedlem 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?

fickelMedlem 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.

aasahMedlem 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.

fickelMedlem 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.

ViktorMedlem 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

fickelMedlem sedan sep. 200210 inlägg
#7

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

LimeMedlem 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

ViktorMedlem sedan aug. 20021 752 inlägg
#9

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

/Viktor

LimeMedlem 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

ViktorMedlem 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

LimeMedlem sedan sep. 2001961 inlägg
#12

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

ViktorMedlem sedan aug. 20021 752 inlägg
#13

Microsoft :e

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

/Viktor

LimeMedlem 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

144 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)