SWT定位– setBounds()或setLocation()

当我们开始学习SWT GUI编程时,我们总是想弄清楚如何定位文本字段,标签,按钮和其他小部件。 在SWT中,我们可以使用setLocation()setLocation()方法来指定小部件或组件的大小和位置。

这是SWT用于定位的两种方法。

1) setBounds(int x,int y,int witdh,int height) –设置小部件的大小和位置
2) setLocation(int x,int y) –设置小部件的位置

位置从左上角开始,如下所示
SWT定位– setBounds()或setLocation()_第1张图片 SWT定位– setBounds()或setLocation()_第2张图片

setBounds()示例

在位置x = 100,y = 50,宽度= 300,高度= 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 ();
}
}

setLocation()示例

在位置x = 100,y = 50,宽度= 300,高度= 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 ();
}
}

setBounds()和setLocation()有什么区别?

如上面的示例,您可能会注意到setBounds()和setLocation()方法之间并没有太大区别。 由于两者都可以指定窗口小部件的位置,因此SWT为什么要使其重复? 我对此一无所知,但是setLocation()需要再指定一个setSize()方法来指定小部件的大小。 这是我所知道的唯一的不同。

翻译自: https://mkyong.com/swt/swt-positioning-setbounds-or-setlocation/

你可能感兴趣的:(SWT定位– setBounds()或setLocation())