SWT(JFace)体验之FormLayout布局
SWT(JFace)体验之FormLayout布局
发布时间:2016-12-28 来源:查字典编辑
摘要:测试代码如下:复制代码代码如下:packageswt_jface.demo2;importorg.eclipse.swt.SWT;impor...

测试代码如下:

复制代码 代码如下:

package swt_jface.demo2;

import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.FormAttachment;

import org.eclipse.swt.layout.FormData;

import org.eclipse.swt.layout.FormLayout;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

public class FormLayoutSample {

Display display = new Display();

Shell shell = new Shell(display);

public FormLayoutSample() {

shell.setLayout(new FormLayout());

Button button1 = new Button(shell, SWT.PUSH);

button1.setText("button1");

FormData formData = new FormData();

formData.left = new FormAttachment(20);

formData.top = new FormAttachment(20);

button1.setLayoutData(formData);

Button button2 = new Button(shell, SWT.PUSH);

button2.setText("button number 2");

formData = new FormData();

formData.left = new FormAttachment(button1, 0, SWT.CENTER);

formData.top = new FormAttachment(button1, 0, SWT.CENTER);

button2.setLayoutData(formData);

// Button button3 = new Button(shell, SWT.PUSH);

// button3.setText("3");

//

// formData = new FormData();

// formData.top = new FormAttachment(button2, 10);

// formData.left = new FormAttachment(button2, 0, SWT.LEFT);

// button3.setLayoutData(formData);

shell.pack();

//shell.setSize(500, 600);

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch()) {

display.sleep();

}

}

display.dispose();

}

public static void main(String[] args) {

new FormLayoutSample();

}

}

再看一个例子:

复制代码 代码如下:

package swt_jface.demo2;

import org.eclipse.swt.SWT;

import org.eclipse.swt.graphics.Point;

import org.eclipse.swt.graphics.Rectangle;

import org.eclipse.swt.layout.FormAttachment;

import org.eclipse.swt.layout.FormData;

import org.eclipse.swt.layout.FormLayout;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Event;

import org.eclipse.swt.widgets.Label;

import org.eclipse.swt.widgets.List;

import org.eclipse.swt.widgets.Listener;

import org.eclipse.swt.widgets.Shell;

public class Main {

public static void main(String[] args) {

Display display = new Display();

final Shell shell = new Shell(display);

Label label = new Label(shell, SWT.WRAP);

label

.setText("This is a long text string that will wrap when the dialog is resized.");

List list = new List(shell, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);

list.setItems(new String[] { "Item 1", "Item2" });

Button button1 = new Button(shell, SWT.PUSH);

button1.setText("Ok");

Button button2 = new Button(shell, SWT.PUSH);

button2.setText("Cancel");

final int insetX = 4, insetY = 4;

FormLayout formLayout = new FormLayout();

formLayout.marginWidth = insetX;

formLayout.marginHeight = insetY;

shell.setLayout(formLayout);

Point size = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);

final FormData labelData = new FormData(size.x, SWT.DEFAULT);

labelData.left = new FormAttachment(0, 0);

labelData.right = new FormAttachment(100, 0);

label.setLayoutData(labelData);

shell.addListener(SWT.Resize, new Listener() {

public void handleEvent(Event e) {

Rectangle rect = shell.getClientArea();

labelData.width = rect.width - insetX * 2;

shell.layout();

}

});

FormData button2Data = new FormData();

button2Data.right = new FormAttachment(100, -insetX);

button2Data.bottom = new FormAttachment(100, 0);

button2.setLayoutData(button2Data);

FormData button1Data = new FormData();

button1Data.right = new FormAttachment(button2, -insetX);

button1Data.bottom = new FormAttachment(100, 0);

button1.setLayoutData(button1Data);

FormData listData = new FormData();

listData.left = new FormAttachment(0, 0);

listData.right = new FormAttachment(100, 0);

listData.top = new FormAttachment(label, insetY);

listData.bottom = new FormAttachment(button2, -insetY);

list.setLayoutData(listData);

shell.pack();

shell.open();

while (!shell.isDisposed()) {

if (!display.readAndDispatch())

display.sleep();

}

display.dispose();

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Java学习
热门Java学习
编程开发子分类