Le Tutoriel de Java SWT Button

1- SWT Button

JavaFX Button permet aux développeurs de traiter une action lorsqu'un utilisateur clique sur un bouton. La classe Button est étendue de la classe  Control. Elle peut afficher un texte, une image et tous les deux.

2- Exemple de Button

Créez un Button avec Texte, ou Image ou bien tous les deux.
// Button 1
final Button button1 = new Button(shell, SWT.NONE);
button1.setText("Button With Text");

// Button 2
final Button button2 = new Button(shell, SWT.NONE);
button2.setText("Button with Text and Image");

InputStream input = ButtonDemo.class.getResourceAsStream("/org/o7planning/swt/icon/java-32.png");
Image image = new Image(null, input);
button2.setImage(image);
Voyez l'exemple complet:
ButtonDemo.java
package org.o7planning.swt.button;

import java.io.InputStream;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class ButtonDemo {

   public static void main(String[] args) {
       
       Display display = new Display();
       Shell shell = new Shell(display);
       shell.setText("SWT Button (o7planning.org)");
       shell.setSize(400, 250);

       RowLayout rowLayout = new RowLayout();
       rowLayout.spacing = 10;
       rowLayout.marginLeft = 10;
       rowLayout.marginTop = 10;
       shell.setLayout(rowLayout);

       // Button 1
       final Button button1 = new Button(shell, SWT.NONE);
       button1.setText("Button With Text");

       // Button 2
       final Button button2 = new Button(shell, SWT.NONE);
       button2.setText("Button with Text and Image");
       
       InputStream input
          = ButtonDemo.class.getResourceAsStream("/org/o7planning/swt/icon/java-32.png");
       Image image = new Image(null, input);
       button2.setImage(image);        

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

3- Button et des événements

La fonction principale de chaque bouton est de produire une action lorsqu'il est cliqué. Utilisez la méthode addSelectionListener de la classe Button pour définir ce qui se passera quand un utilisateur clique sur ce bouton.
// Handling when users click the button.
button.addSelectionListener(new SelectionAdapter() {

   @Override
   public void widgetSelected(SelectionEvent arg0) {
       Date now = new Date();
       label.setText(now.toString());
       // Causes the receiver to be resized to its preferred size.
       label.pack();
   }

});

// OR
// Handling when users click the button.
button.addSelectionListener(new SelectionListener() {

   @Override
   public void widgetSelected(SelectionEvent arg0) {
       Date now = new Date();
       label.setText(now.toString());
       label.pack();
   }

   @Override
   public void widgetDefaultSelected(SelectionEvent arg0) {
       System.out.println("Ignore this method!");
   }

});
Par exemple, une gestion d'action se produit avec  Button.
ButtonEventDemo.java
package org.o7planning.swt.button;

import java.util.Date;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;

public class ButtonEventDemo {

    public static void main(String[] args) {

        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setText("SWT Button (o7planning.org)");
        shell.setSize(400, 250);

        RowLayout rowLayout = new RowLayout();
        rowLayout.spacing = 10;
        rowLayout.marginLeft = 10;
        rowLayout.marginTop = 10;
        shell.setLayout(rowLayout);

        // Button
        final Button button = new Button(shell, SWT.NONE);
        button.setText("Show Time");

        // Label
        final Label label = new Label(shell, SWT.NONE);
        label.setText("");

        // Handling when users click the button.
        button.addSelectionListener(new SelectionAdapter() {

            @Override
            public void widgetSelected(SelectionEvent arg0) {
                Date now = new Date();
                label.setText(now.toString());
                // Causes the receiver to be resized to its preferred size.
                label.pack();
            }

        });

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

}
Exécution de l'exemple:

4- Button Style

Lors de la création un  Button vous pouvez spécifier son style (Style):
// Style for Button
int style = SWT.PUSH | SWT.LEFT;

int sytle = SWT.ARROW | SWT.LEFT;

// Create a Button with style.
Button button = new Button(parent, style);
Voici est le style qui peut être appliqué au  Button:
  1. Utilisez une des constantes: SWT.LEFT, SWT.CENTER, hoặc SWT.RIGHT
  2. Utilisez une des constantes: SWT.ARROW, SWT.CHECK, SWT.PUSH, SWT.RADIO, hoặc SWT.TOGGLE..
  3. Si vous utilisez de SWT.ARROW vous pouvez combiner avec une des constantes SWT.UP, SWT.DOWN, SWT.LEFT, ou SWT.RIGHT afin de déterminer la direction de la flèche.
Style     Description
SWT.CHECK   
Crée un CheckBox
SWT.PUSH   
Crée un bouton poussoir (Push Button)
SWT.RADIO   
Crée un boutton radio
SWT.TOGGLE   
Crée un bouton-poussoir qui préserve son état poussé ou non poussé.
SWT.FLAT   
Crée un bouton-poussoir qui apparaît à plat (Flat)
SWT.ARROW   
Crée un bouton-poussoir qui affiche une flèche.
SWT.UP    Lorsqu'il est combiné avec SWT.ARROW, il affiche une flèche pointant vers le haut.
SWT.DOWN    Lorsqu'il est combiné avec SWT.ARROW, il affiche une flèche pointant vers le bas.
SWT.CENTER    Centre le texte associé.
SWT.LEFT    Aligne le texte associé à gauche. Lorsqu'il est combiné avec SWT.ARROW, il affiche une flèche vers la gauche.
SWT.RIGHT    Aligne le texte associé à droite. Lorsqu'il est combiné avec SWT.ARROW, il affiche une flèche pointant vers la droite