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.
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....
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...
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...
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(); } }
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 :)
I skal alle have mange tak for hjælpen - jeg vil arbejde lidt videre med carstenknudsens eksempel!
Synes godt om
Ny brugerNybegynder
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.