快速业务通道

Eclipse开发经典教程之SWT布局 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
通过本例的学习,读者 可以比较好地掌握GridLayout布局,代码如例程3所示。

例程3 ComplexGridLayoutExample.java

public class ComplexGridLayoutExample { static Display display; static Shell shell; static Text dogName; static Combo dogBreed; static Canvas dogPhoto; static Image dogImage; static List categories; static Text ownerName; static Text ownerPhone; public static void main(String[] args) { display = new Display(); shell = new Shell(display); shell.setText ("Dog Show Entry"); //新建GridLayout布局 GridLayout gridLayout = new GridLayout(); //把子组件分成3列显示 gridLayout.numColumns = 3; shell.setLayout(gridLayout); new Label (shell, SWT.NONE).setText("Dog''s Name:"); dogName = new Text (shell, SWT.SINGLE | SWT.BORDER); //新建水平填充的GridData GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); //GridData的组件占 两列显示 gridData.horizontalSpan = 2; dogName.setLayoutData (gridData); new Label(shell, SWT.NONE).setText("Breed:"); dogBreed = new Combo(shell, SWT.NONE); dogBreed.setItems(new String [] {"Collie", "Pitbull", "Poodle", "Scottie"}); dogBreed.setLayoutData(new GridData (GridData.HORIZONTAL_ALIGN_FILL)); Label label = new Label(shell, SWT.NONE); label.setText("Categories"); label.setLayoutData (new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); new Label(shell, SWT.NONE).setText("Photo:"); dogPhoto = new Canvas(shell, SWT.BORDER); //gridData两端填充 gridData = new GridData (GridData.FILL_BOTH); //gridData最佳宽度和高度 gridData.widthHint = 80; gridData.heightHint = 80; //设置gridData的子组件垂直占3行 gridData.verticalSpan = 3; dogPhoto.setLayoutData(gridData); //添加画 布的重画事件 dogPhoto.addPaintListener(new PaintListener() { public void paintControl(final PaintEvent event) { if (dogImage != null) { event.gc.drawImage(dogImage, 0, 0); } } }); categories = new List(shell, SWT.MULTI | SWT.BORDER | SWT.V_SCROLL); categories.setItems (new String [] { "Best of Breed", "Prettiest Female", "Handsomest Male", "Best Dressed", "Fluffiest Ears", "Most Colors", "Best Performer", "Loudest Bark", "Best Behaved", "Prettiest Eyes", "Most Hair", "Longest Tail", "Cutest Trick"}); gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData. VERTICAL_ALIGN_FILL); gridData.verticalSpan = 4; int listHeight = categories.getItemHeight() * 12; Rectangle trim = categories.computeTrim(0, 0, 0, listHeight); gridData.heightHint = trim.height; categories.setLayoutData(gridData); Button browse = new Button(shell, SWT.PUSH); browse.setText("Browse..."); gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gridData.horizontalIndent = 5; browse.setLayoutData(gridData); //添加 按钮的选择事件 browse.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { String fileName = new FileDial

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号