SWT-Positionierung - setBounds () oder setLocation ()

SWT-Positionierung - setBounds () oder setLocation ()

Wenn wir etwas über die SWT-GUI-Programmierung lernen, möchten wir immer herausfinden, wie wir das Textfeld, die Beschriftung, die Schaltfläche und andere Widgets positionieren. In SWT können wir die MethodesetLocation() odersetLocation() verwenden, um die Größe und Position eines Widgets oder einer Komponente anzugeben.

Hier sind die beiden Methoden, die SWT zur Positionierung verwendet.

1)setBounds(int x, int y, int witdh, int height) - Legt die Größe und Position des Widgets fest
2)setLocation(int x, int y) - Legt die Position des Widgets fest

Die Position beginnt in der oberen linken Ecke wie folgt:
image

setBounds () Beispiel

Erstellen Sie eine Beschriftung an Position x = 100, y = 50, Breite = 300, Höhe = 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 ();
}
}

Beispiel setLocation ()

Erstellen Sie eine Beschriftung an Position x = 100, y = 50, Breite = 300, Höhe = 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 ();
}
}

Was ist der Unterschied zwischen setBounds () und setLocation ()?

Im obigen Beispiel stellen Sie möglicherweise fest, dass sich die Methoden setBounds () und setLocation () kaum unterscheiden. Da beide auch die Widget-Position angeben können, warum sollte SWT sie duplizieren? Ich habe keine Ahnung davon, aber setLocation () muss eine weitere setSize () -Methode angeben, um die Widgetgröße anzugeben. Dies ist der einzige Unterschied, den ich kenne.