Avatar billede fredslund Nybegynder
05. august 2002 - 13:12 Der er 12 kommentarer og
1 løsning

Underline

Hvordan understreger jeg teksten i en JLabel?
Avatar billede carstenknudsen Nybegynder
05. august 2002 - 13:21 #1
Hvis du benytter html kan du skrive
JLabel label = new JLabel("<html><a href>din tekst her</a></html>");
Avatar billede fredslund Nybegynder
05. august 2002 - 13:46 #2
Spørgsmålet er tænkt i forhold til en java-applikation.
Avatar billede carstenknudsen Nybegynder
05. august 2002 - 13:50 #3
Svaret er også i forhold til en Java applikation. Du kan
give html kode i en JLabel. Det virker, prøv det.
Hvis du ikke vil løse problemet på denne måde så giv
lidt flere informationer.
Avatar billede fredslund Nybegynder
05. august 2002 - 14:02 #4
Ja - OK, det var jeg ikke klar over, - at man kunne bruge html-koder i sin applikation... - Det virker dog kun til dels, idet jeg ikke får nogen understregning men derimod en anden skrifttype.

Det jeg umiddelbart ledte/leder efter er vel nok, om der ikke findes en løsning i java? - ligesom det er muligt at skrive med bold, italic o.s.v....
Avatar billede emileej Nybegynder
06. august 2002 - 11:05 #5
Du skal kigge på Font class'en - deri kan man oprette en font med understregning og bruge JLabel.setFont(Font) til at give din label den font.

E-)mil
Avatar billede fredslund Nybegynder
06. august 2002 - 17:10 #6
Hmn - jeg har kigget i Font-klassen men synes ikke rigtig der går noget lys op for mig... - har du evt. et eksempel?
Avatar billede alkrojen Nybegynder
19. august 2002 - 14:46 #7
Prøv følgende html-kode:

JLabel label = new JLabel("<u>din text</u>");

Den burde virke, hvis du da anvender jdk1.3 eller nyere!
Avatar billede fredslund Nybegynder
19. august 2002 - 14:58 #8
Jeg har tidligere afprøvet denne løsning i forbindelse med carstenknudsens forslag, men som jeg skrev, - så virker det kun til dels - idet jeg ikke får nogen understregning men en anden skrifttype...

Jeg kører jdk1.3!
Avatar billede emileej Nybegynder
19. august 2002 - 22:28 #9
Når det ikke fungerer med HTML og ikke er indbygget i Font, ser jeg ingen anden måde end at du selv skriver en ny slags label, der arver fra JLabel og som kan lave understregninger...
Avatar billede carstenknudsen Nybegynder
20. august 2002 - 09:54 #10
Da der ikke ser ud til at komme nogle løsninger har
jeg skrevet en ny klasse der repræsenterer labels
med understregning. Det ses i koden hvordan man
understreger så den kode kan ekstraheres hvis man
kun vil gøre det manuelt.
Kør testprogrammet og resize framen for at du skal
kunne se noget. Jeg ved ikke hvorfor den ikke viser
det med det samme, jeg skriver ikke swing hver dag :)
De fire udkommenterede linier giver dig et hint om
en mere generel løsning. Du kan let tilføje at under-
stregningen har en anden farve f.eks.
import java.awt.*;
import javax.swing.*;
public class MyLabel extends JLabel {
    protected String text;
    public MyLabel( String text ) {
    super( text );
    this.text = text;
    repaint();
    }
    public void paint( Graphics g ) {
    super.paint( g );
//     int h = getHorizontalTextPosition();
//     int v = getVerticalTextPosition();
//     int ha = getHorizontalAlignment();
//     int va = getVerticalAlignment();
    Font font = getFont();
    FontMetrics metrics = g.getFontMetrics( font );
    int width = metrics.stringWidth(text);
    int height = metrics.getHeight() - 1;
    g.drawLine( 0,height,width,height);
    }
    public static void main( String[] args ) {
    JFrame frame = new JFrame( "This is a JFrame" );
    frame.getContentPane().setLayout( new FlowLayout() );
    frame.getContentPane().add( new MyLabel( "This is MyLabel" ) );
    frame.pack();
    frame.show();
    }
}
Avatar billede carstenknudsen Nybegynder
20. august 2002 - 09:55 #11
PS jeg har ikke gjort noget for at optimere koden,
du kan let tilføje mange optimeringer.
Avatar billede emileej Nybegynder
20. august 2002 - 11:36 #12
Hehe "bright minds think alike" :)
En feature kunne for eksempel være at man kunne vælge imellem underline og word underline. Eller måske kunne man lave et system med en liste, hvor hvert element består af to tal: Eet der representerer tegnpositionen hvor linien starter og eet der representerer slutningen - på den måde kan man have dele af labelen understreget, og det flere steder :)

Måske kigger jeg lidt på ideen i eftermiddag og poster det hele her :)

E-)mil
Avatar billede fredslund Nybegynder
20. august 2002 - 15:02 #13
I skal alle have mange tak for hjælpen - jeg vil arbejde lidt videre med carstenknudsens eksempel!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis