© 1999-2003, Flemming Koch Jensen
Alle rettigheder forbeholdt
Labels

 

 

JLabel Et label er en kort tekst man f.eks. bruger til en titel eller en angivelser i det hele taget. I Swing er et label en instans af klassen JLabel. Et label bliver vist som én linie tekst, og der er derfor normalt tale om en relativ kort tekst.
  Lad os se et eksempel på et label:
Figur 1:
Eksempel på JLabel
  I den øverste af de to frames er der anvendt en setSize på framen. I den nederste er anvendt pack; hvilket giver et indtryk at labels reelle udstrækning.
  Kildeteksten til eksemplet er:
Source 1:
Eksempel på JLabel
import javax.swing.*;
import java.awt.*;

class LabelFrame extends JFrame {
  private JLabel label;
  
  public LabelFrame( String title ) {
    super( title );

    getContentPane().setLayout( new FlowLayout() );
    
    label = new JLabel( "Dette er et JLabel" );
    getContentPane().add( label );
    
//    setSize( 200, 100 );
    pack();
    setVisible( true );
  }
}

class Main {

  public static void main( String[] argv ) {

    new LabelFrame( "Eksempel på JLabel" );
  }
}
Icon Et JLabel kan også have et icon. Man kan enten at have en tekst eller et icon, eller begge dele.
  Lad os se et eksempel hvor vi både har en tekst og et icon.
Figur 2:
Eksempel på JLabel
med icon
  Som default vil iconet blive placeret til vesntre for teksten (se nedenfor hvordan dette kan ændres).
  Kildeteksten til eksemplet er:
Source 2:
Eksempel på JLabel
med icon
import javax.swing.*;
import java.awt.*;

class LabelFrame extends JFrame {
  private JLabel label;
  
  public LabelFrame( String title ) {
    super( title );

    getContentPane().setLayout( new FlowLayout() );
    
    Icon icon = new ImageIcon( "titlepic_tiny.gif" );
    
    label = new JLabel( "Dette er et JLabel", icon, SwingConstants.LEFT );
    getContentPane().add( label );
    
    pack();
    setVisible( true );
  }
}

class Main {

  public static void main( String[] argv ) {

    new LabelFrame( "Eksempel på JLabel med icon og tekst" );
  }
}
  Ignorer angivelsen af SwingConstants.LEFT.
 

 

1. Konstruktorer

  JLabel har seks konstruktorer:
JLabel()
JLabel( Icon image )
JLabel( Icon image, int horizontalAllignment )
JLabel( String s )
JLabel( String s, Icon image, int horizontalAllignment )
JLabel( String s, int horizontalAllignment )
  Default-konstruktoren laver et label uden icon og med den tomme streng som tekst.
  De andre konstruktorer giver mulighed for at angive et icon eller en tekst, eller begge dele. Ud over dette giver de også mulighed for at angive en horisontal indstilling af teksten. Jeg er ikke bekendt med dens mere præcise betydning af denne parameter. F.eks. er det uden betydning i eksemplet ovenfor, hvad man angiver.
 

 

2. Metoder

  De metoder vi her har valgt ud, er en lang række set/get-metoder der styrer labels udseende.
  Metoderne:
void setText( String s )
String getText()
  er set/get-metoder for den tekst der optræder i label.
  Metoderne:
void setIcon( Icon icon )
Icon getIcon()
  er set/get-metoder for det icon der optræder i label.
  Metoderne:
void setIconTextGap( int gap )
int getIconTextGap()
  er set/get-metoder for størrelsen af mellemrummet mellem iconet og teksten (i pixels).
  Metoderne:
void setHorizontalTextPosition( int pos )
int getHorizontalTextPosition()
  er set/get-metoder for hvor teksten skal placeres vandret i forhold til iconet.
  Positionsangivelserne der anvendes som parameter, er defineret i interfacet SwingConstants. Der er fem mulige angivelser:
SwingConstants.LEFT
SwingConstants.CENTER
SwingConstants.RIGHT
SwingConstants.LEADING
SwingConstants.TRAILING
Til ventre
I midten
Til højre ? (default)
?
  Pt. har jeg ikke nogen klar forståelse af de to sidste.
  Metoderne:
void setVerticalTextPosition( int pos )
int getVerticalTextPosition()
  er set/get-metoder for hvor teksten skal placeres lodret i forhold til iconet.
  Positionsangivelserne der anvendes som parameter, er ligeledes defineret i interfacet SwingConstants. Der er tre mulige angivelser:
SwingConstants.TOP
SwingConstants.CENTER
SwingConstants.BOTTOM
Over
I midten (default)
Under
  Jeg har endnu ikke haft lejlighed til at afprøve samtlige kombinationsmuligheder for vertikal og horizontal placering. Det er derfor op til læseren at foretage disse eksperimenter.
 

 

3 HTML

  Det er muligt at anvende HTML til f.eks. at lave et JLabel, der består af flere linier.
Source 3:
JLabel
på flere linier
class HTMLFrame extends JFrame {

public HTMLFrame() {
super( "HTML Frame" );

getContentPane().setLayout( new FlowLayout() );

String html =
"<html><center>Ved hjælp af html kan man få<br>" +
"et JLabel til at indeholde<br>" +
"flere linier</center></html>";

getContentPane().add( new JLabel( html ) );

pack();
setVisible( true );
}
}
  Ovenstående frame får følgende udseende:
Figur 3:
JLabel
på flere linier
  Muligheden for at anvende HTML gælder ikke kun for JLabel. HTML kan anvendes i alle grafiske komponenter, der er tekstbaserede.