JAVA从入门到精通:SWT(JFace)体验之FormLayout布局
Vivian 2018-06-14 来源 : 阅读 746 评论 0

摘要:本文主要向大家介绍了JAVA从入门到精通的SWT(JFace)体验之FormLayout布局,通过具体的代码向大家展示,希望对大家学习JAVA从入门到精通有所帮助。

本文主要向大家介绍了JAVA从入门到精通的SWT(JFace)体验之FormLayout布局,通过具体的代码向大家展示,希望对大家学习JAVA从入门到精通有所帮助。

测试代码如下:

复制代码代码如下:

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的介绍,先祝大家应该对它有了一定的了解吧,希望这篇文章对大家有一定的帮助!

本文由 @Vivian 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程