java 板


LINE

Title: 基本元件的使用 Requirement: 了解SWT程式的基本架构 本文说所的「基本元件」仅为作者个人的讲法,对於尚未使用SWT撰写GUI 的人来说。能先在视窗中布置一些元件有助於增长信心的。而这些基本元 件共用的特性为:仅以最简单的操作形式就能使用。本文说要介绍的基本 元件有:Label、Text、Button、List、Combo。此外,还有将元件群组或 组装功能的元件:Composite、Group。 下列程式码为SWT 的骨架,以注解的方式标明元件合理的配置位置。每一 个SWT 程式,至少需要一个特殊的Display 类别,负责控制SWT 本身与作 业系统间的通讯,再以一个Shell 类别,持有真正的视窗。而元件则要布 置在Shell 产生的视窗之上。因此,元件合理的产生位置。应该在Shell 实例产生之後至Shell 实例释放之前。 ============================================================================== public class SWT { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); /* 元件配置区 */ shell.setSize(400, 300); shell.setText("SWT"); shell.open(); while (!shell.isDisposed()) if (!display.readAndDispatch()) { display.sleep(); } display.dispose(); } } ============================================================================== 在正式使用元件之前,先浏览一下物类的继承关系: 以Button为例[1], java.lang.Object org.eclipse.swt.widgets.Widget org.eclipse.swt.widgets.Control org.eclipse.swt.widgets.Button 在Button与其抽象类别之间,尚有一个Control类别负责处理使用者与视 视窗之间互动的行为。像焦点(focus) 控制,注册事件接收器等等。都依 赖Control类别来控制。而更上一层为所有元件的抽象类别Widget ,也是 规范元件产的主要介面。Widget类别的建构式只有一个,需指定一个父元 件(parent)以及此Widget类别的风格(style): Widget(Widget parent, int style) 本文所介绍的基本元件都继承自Widget,所以配置元件都使用此建构式。 而建构式中parent参数应为何者呢?再次回顾SWT 程式基本架构。需先产 生一个沟通SWT 程式与系统底层的Display,再以此Display为一特殊的不 可视元件作为Shell 的父元件将真实的视窗呈现於画面。而其他的元件可 以为Shell 的子元件。因此,目前所知,我们及将产生的元件,父元件可 指定为Shell。至於style则使用SWT 类别定义的常数来决定。可供指定的 style也依元件有所不同,可查阅API後再决定设定的内容。以Button类别 为例: 以下为Button类别的手册部分内容,每一个元件皆有三个部分的主要描述 。Styles 说明该类别能使用的style;Events列出可供注册的事件;Note 则附加说明Styles 使用的限制。由Note可看出,style大致分为二组,一 为指定按钮型态的style:ARROW、CHECK、PUSH、RADIO与TOGGLE。一为指 定按钮内文字对齐方式的:LEFT、RIGHT与CENTER 。此外,还附加说明, 当style为ARROW需指定ARROW的方向:UP、DOWN、LEFT与RIGHT。有这样的 了解就能依类别说明自行查阅。 <% Styles: ARROW, CHECK, PUSH, RADIO, TOGGLE, FLAT UP, DOWN, LEFT, RIGHT, CENTER Events: Selection Note: Only one of the styles ARROW, CHECK, PUSH, RADIO, and TOGGLE may be specified. Note: Only one of the styles LEFT, RIGHT, and CENTER may be specified. Note: Only one of the styles UP, DOWN, LEFT, and RIGHT may be specified when the ARROW style is specified. IMPORTANT: This class is intended to be subclassed only within the SWT implementation. %> 看懂了手册的描述後,就能试着产生Button 类别。如前文所述,style常 数定义於SWT内,并且皆为static 。所以,你可以用下列程式码产生一个 Button。 <% Button b = new Button(shell, SWT.PUSH); %> 而若要同时指定,文字靠右对齐,可改写为: <% Button b = new Button(shell, SWT.PUSH | SWT. RIGHT); %> 其他的元件:Label、Text、List、Combo。用法则与Button相似。最後, 提供一个完整可执行的范例: ========================================================================= import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class ButtonEx { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); Button button = new Button(shell, SWT.PUSH); button.setText("I am a button"); /* 使用pack method将button调整至少需要的大小。 在不使用版面管理员的情况下, 若无设定大小,则元件会呈现於shell中的一个小点。 */ button.pack(); shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } } ========================================================================= [1] 注意:非所有本文列举的基本元件都是如此的继承关系。 -- 我所追求的纯粹只是任性,完全的任性。 -- 挪威的森林 -- ※ Origin: SayYA 资讯站 <bbs.sayya.org> ◆ From: pc210-59-94-118.nutn.edu.tw ◆ Modify: 05/08/17 9:04:01 <pc210-59-94-118.nutn.edu.tw> ※ X-Info: qrtt1 -> [email protected] ※ X-Sign: 124IQHH0chkS2kH6BT2Y (06/04/22 7:26:41 ) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.59.94.148 ※ 编辑: qrtt1 来自: 210.59.94.148 (04/22 07:27)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP