Positionnement SWT - setBounds () ou setLocation ()

Positionnement SWT - setBounds () ou setLocation ()

Lorsque nous commençons à apprendre la programmation de l'interface graphique SWT, nous voulons toujours savoir comment positionner le champ de texte, l'étiquette, le bouton et les autres widgets. Dans SWT, nous pouvons utiliser la méthodesetLocation() ousetLocation() pour spécifier la taille et la position d'un widget ou d'un composant.

Voici les deux méthodes utilisées par SWT pour le positionnement.

1)setBounds(int x, int y, int witdh, int height) - Définit la taille et l'emplacement du widget
2)setLocation(int x, int y) - Définit l'emplacement du widget

La position commence à partir du coin supérieur gauche comme suit
image

Exemple de setBounds ()

Créez une étiquette à la position x = 100, y = 50, largeur = 300, hauteur = 30

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

public class SWTPosition {

public static void main (String [] args) {
    Display display = new Display ();
    Shell shell = new Shell(display);

    Label positiongLabel = new Label(shell, SWT.BORDER);
    positiongLabel.setBounds(100,50,300,30);

    positiongLabel.setText("My Position is : " + positiongLabel.getBounds());

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

Exemple de setLocation ()

Créez une étiquette à la position x = 100, y = 50, largeur = 300, hauteur = 30

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

public class SWTPosition {

public static void main (String [] args) {
    Display display = new Display ();
    Shell shell = new Shell(display);

    Label positiongLabel = new Label(shell, SWT.BORDER);
    positiongLabel.setSize(300,30);
    positiongLabel.setLocation(100, 50);

    positiongLabel.setText("My Position is : " + positiongLabel.getLocation());

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

Quelle est la différence entre setBounds () et setLocation ()?

Comme exemple ci-dessus, vous remarquerez peut-être qu'il n'y a pas beaucoup de différence entre les méthodes setBounds () et setLocation (). Puisque les deux peuvent également spécifier la position du widget, pourquoi SWT le fait-il dupliquer? Je n'en ai aucune idée, cependant setLocation () doit spécifier une autre méthode setSize () pour spécifier la taille du widget. C'est la seule différence que je connaisse.