devstory

Le Tutoriel de Java SWT Label

  1. SWT Label
  2. Exemple de Label
  3. Labe avec Icône
  4. Label avec Font et Color

1. SWT Label

SWT Label est un composant de l'interface d'utilisateur (UI Component), qui peut afficher du texte ou de l'image mais ne peut pas les afficher simultanément. Pour les afficher simultanément, vous pouvez utiliser CLabel, une sous-classe de Label.

2. Exemple de Label

C'est un simple exemple de Label qui affiche le texte. Notamment la classe Label est utilisé afin de créer des separateurs (Separator) horizontalement ou verticalement.
LabelDemo.java
package org.o7planning.swt.label;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

public class LabelDemo {

   public static void main(String[] args) {

       Display display = new Display();

       Shell shell = new Shell(display);

       RowLayout layout = new RowLayout();
       layout.spacing = 20;
       shell.setLayout(layout);

       // Create a Label with Text
       Label label1 = new Label(shell, SWT.NONE);
       label1.setText("My Label");

       // Create a Label is Horizontal Separator
       Label hSeparator = new Label(shell, SWT.SEPARATOR | SWT.HORIZONTAL);

       // Create a Label is Vertical Separator
       Label vSeparator = new Label(shell, SWT.SEPARATOR | SWT.VERTICAL);

       shell.setText("SWT Label Demo");
       shell.setSize(450, 250);
       shell.open();

       while (!shell.isDisposed()) {
           if (!display.readAndDispatch())
               display.sleep();
       }
       display.dispose();
   }

}

3. Labe avec Icône

Notez que la classe Label peut afficher le texte ou de la icône, si vous voulez afficher tous les deux Texte & Icône, vous devriez utiliser de la classe CLabel.
MyImageUtils.java
package org.o7planning.swt.utils;

import java.io.IOException;
import java.io.InputStream;

import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;

public class MyImageUtils {

   
    // resourcePath: "/org/o7planning/swt/icon/java-32.png"
    public static Image getImage(Display display, String resourcePath) {
        InputStream input = null;
        try {
            // /org/o7planning/swt/icon/java-32.png
            input = MyImageUtils.class.getResourceAsStream(resourcePath);
            Image image = new Image(display, input);
            return image;
        } finally {
            closeQuietly(input);
        }
    }

    private static void closeQuietly(InputStream is) {
        try {
            if (is != null) {
                is.close();
            }
        } catch (IOException e) {
        }
    }
   
}
Observez l'exemple complet:
LabelIconDemo.java
package org.o7planning.swt.label;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.o7planning.swt.utils.MyImageUtils;

public class LabelIconDemo {

    public static void main(String[] args) {

        Display display = new Display();

        Shell shell = new Shell(display);

        RowLayout layout = new RowLayout();
        layout.spacing = 20;
        shell.setLayout(layout);

        Image image  = MyImageUtils.getImage(display, "/org/o7planning/swt/icon/java-48.png");
        Image image2 = MyImageUtils.getImage(display, "/org/o7planning/swt/icon/java-32.png");

        // Create a Label with Text
        Label label1 = new Label(shell, SWT.NONE);
        label1.setText("Label with Text");
        
        // Create a Label with Icon
        Label label2 = new Label(shell, SWT.NONE);
        label2.setImage(image2);
        
        // Create a CLabel with Text & Icon
        CLabel cLabel = new CLabel(shell, SWT.NONE);

        cLabel.setImage(image);
        cLabel.setText("SWT CLabel");

        shell.setText("SWT Label Demo (o7planning.org)");
        shell.setSize(450, 250);
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }

}

4. Label avec Font et Color

Vous pouvez trouver plus de documents sur SWT Font & Color à:
  • swt font and color
Font
Vous pouvez définir la police (y compris le nom de la police et la taille) pour Label via la méthode setFont.
// Tạo một đối tượng Font mới
Font font = new Font(display, "Cambria", 22, SWT.ITALIC);

label.setFont(font);
Color
Utilisez de la méthode setForeground afin de définir la couleur des lettres de Label.
Color color = new Color(display, 0, 114, 135);

// Set fore color
label.setForeground(color);
Voyez l'exemple complet:
LabelFullDemo.java
package org.o7planning.swt.label;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

public class LabelFontColorDemo {

    public static void main(String[] args) {

        Display display = new Display();

        Shell shell = new Shell(display);

        RowLayout layout = new RowLayout();
        layout.spacing = 20;
        shell.setLayout(layout);

        // ------ Label -----
        Label label = new Label(shell, SWT.NONE);

        label.setText("Label With Font and Color");

        label.setFont(new Font(display, "Cambria", 22, SWT.ITALIC));

        Color color = new Color(display, 0, 114, 135);
        // Set fore color
        label.setForeground(color);

        shell.setText("SWT Label Demo (o7planning.org)");
        shell.setSize(450, 250);
        shell.open();

        while (!shell.isDisposed()) {
            if (!display.readAndDispatch())
                display.sleep();
        }
        display.dispose();
    }

}