SWT和JFace应用笔记

article/2025/9/14 4:09:25
SWT和JFace应用笔记

在这里插入图片描述
链接:https://pan.baidu.com/s/1To4Lhgan4xEr1iaFA0Rerg
提取码:63qm

1.SWT笔记

一.创建一个SWT程序有3个部分
1.初始化窗口:首先创建Dispaly对象和Shell对象。Display:对象封装了调用操作系统的有关方法Shell:该对象示窗口对象
2.添加控件:在Shell1窗口对象添加按钮,文本框,选项卡等控件。
3.GUI调用:首先调用shell.open()方法打开窗口以及窗口中的控件,while循环表示只有Shell窗口还未释放,Display对象就会调用readAndDispatch()来跟踪事件队列中用户所注册的事件。一旦用户关闭了窗口,则调用Display对象的dispose()方法释放Display对象。
二.Display类

介绍:封装了对本地操作系统资源、事件和各种控件的管理,是开发SWT应用程序的基础。

三.Shell类

显示在桌面上的窗口:顶级窗口(Display对象),对话框窗口(Shell对象)

四.控件:

Label(标签)
CLabel(自定义列表)
Button(按钮)
Text(文本框 password.setEchoChar(’*’))
List(列表)
Combo(组合框)

五.面板容器类

Composite(面板类)
Group(分组框)
TabFolder(选项卡)—>TabItem
CTabFolder(自定义选项卡)
SashForm(分割窗框)
CBanner(自定义分割框)
ScrolledComposite(滚动面板)
ViewForm

六.布局管理器
FillLayout(充满式布局) RowLayout(行列式布局) GridLayout(网格式布局) FormLayout(表格式布局) StackLa(堆栈式布局)
RowLayout属性:wrap 设置折行显示 (true:换行  false:不换行) pack 设置空间大小 (true:自动 false:平均) type 设置填充方式 (SWT.HORIZONTAL:平行  SWT.VERTICAL 垂直 )justify 设置充满整行(false:不充满   true:充满)fill 设置是否等宽或等高 (false :不 等宽或高 true :等宽或等高)
GridLayout属性:numColumns: 设置网格列数makeColumnsEqualWidth:设置网格是否等宽
GridData对象:horizontalAlignment/verticalAlignment:设置单元格对齐方式horizontallIndent/verticallndent:设置缩进大小horizontalSpan/verticalSpan:设置单元格跨行和跨列显示grabExcessHorizontalSpace/grabExcessVerticalSpace: 设置单元格空间的抢占方式minmumWidth/minimumHeight:设置控件大小(不会随窗口改变而改变)widthHint/heightHint:设置控件大小(随窗口改变而改变)FormAttachment:设置相对位置
七.事件模型概述
监听器(xxxListenter),事件(xxxEvent),注册监听器(addxxxListener)
非内部类使用:实现XXXListener接口或者继承对应的适配器类键盘事件:KeyListener,KeyEvent,addKeyListener鼠标事件:MouseEvent,MouseMoveEvent,MouseTrackEvent选中事件:SelectionEvent文本修改事件:VerifyEvent,ModifyEvent VerifyEvent优先于ModifyEvent,当VerifyEvent事件的dot属性为true时,才触发ModifyEvent。注册无类型事件监听器:addListener(int eventType,Listener listener)listener监听器只有一个方法HandleEvent方法,监听器对象要实践这个方法。
八.SWT高级控件
Link(链接文本)
菜单:Menu(菜单) MenuItem(菜单项) 菜单项.setMenu(Menu menu)
菜单样式 :SWT.BAR: SHELL菜单栏中的菜单SWT.DROP_DOWN:从菜单栏或菜单项弹出的菜单对应的菜单项样式必须是SWT.CASCADESWT.POP_UP:单击鼠标右键弹出的菜单SWT.NO_RADIO_GROUP:使单选按钮组的功能不生效,只针对菜单项的样式为SWT.RADIO时有效SWT.LEFT_TO_RIGHT/SWT.RIGHT_TO_LEFT,显示方式默认是由左向右
菜单项样式:SWT.PUSH:普通的菜单项,单击类似于按钮的操作SWT.RADIO:在几个选项之间选中一个,并且选中的选项以黑原点表示。SWT.CHECK:类似于多选框,可以同时选中多个选项,并且选中的选项以对勾符合表示SWT.CASCADE:可以包含一个下拉菜单的菜单项SWT.SEPARATOR:充当分隔条的菜单项,通常没有其他意义
快捷键&标识:setAccelerator(int accelerate)		
工具栏:ToolBar(工具栏) ToolItem(工具栏按钮)
工具栏样式: SWT.VERTICAL:垂直工具栏
SWT.FLAT:平滑样式
SWT.RIGHT:右侧显示文字样式
SWT.SHADOW_OUT:带阴影的工具栏
SWT.BORDER:带边框的工具栏
工具栏按钮样式:SWT.RADIO 单选按钮
SWT.CHECK 多选按钮
SWT.SEPARATOR 工具栏分割按钮
SWT.DROP_DOWN 带有下拉按钮的工具栏按钮   配合弹出式菜单
CoolBar(可拖动工具栏) ,Cooltem(可拖动工具栏按钮) 通setControl(Control control)绑定            
滑动组件:
Slider(滑块) ,Scale(刻度条),Spinner(微调按钮) ,ProgressBar(进度条)
对话框:
MessageBox(消息提示框),
DirectoryDialog(文件目录对话框),
FileDialog(文件对话框),
ColorDialog(颜色对话框),
FontDialog(字体对话框),
PrintDialog(打印对话框)
表格:Table(表格) TableColumn(表头) TableItem(许多行数据)
	SWT.CHECK:带有选择框SWT.MULTI:选择多行SWT.FULL_SELECTION:当鼠标选中某一行,高亮显示SWT.LEFT/SWT.RIGHT/SWT.CENTER:左/右/中对齐TableColumn.setMoveable(boolean moveable)是否可以拖动	TableItem.serImage(Image image)设置图标TableItem.setBackgroumd([int index,]Color color)设置背景色TableItem.setForeground([int index,]Color color)设置文字颜色TableEditor(可编辑表格)  TableCursor(键盘控制表格)  ProgressBar(带有进度条的表格) 
树:Tree(树),TreeItem(树节点)
样式:SWT.MULTI:可多选的树SWT.CHECK:带有选择框的树      SWT.FULL_SELECTION:选中的树高亮显示 TreeEditor(可编辑的树)

难点高级杂项:格式化文本/对象,浏览器,SWT拖放,SWT线程,SWT资源(字体,光标,图像),打印支持

2.JFace笔记

一.Jface创建.
1,继承ApplicationWindow类
2,覆写createContents
3, 实例对象.setBlockOnOpen(true);实例对象.open(); 打开窗口Display.getCurrent().dispose();关闭资源
二.ApplicationWindow---->Window常被子类覆写的方法
close:关闭窗口可以释放一些资源
configureShell:在窗口打开前设置一个窗口的属性
createContents:在窗口打开前创建窗口的内容
getInitialSize:设置窗口初始大小
getInitialLocation:设置窗口的初始位置
getShellListener:设置窗口的事件监听器
getToolTipText:设置提示
handleFontChange:处理字体改变的方法,通常可以用于改变窗口的字体同时也改变控件的字体handleShellCloseEvent:处理关闭窗口时的事件处理

三. ApplicationWindow类的常用方法

	addMenuBar()添加菜单栏createMenuManager()创建菜单栏的管理器对象getMenuBarManager()获得createMenuManager方法创建的菜鸟管理器对象addToolBar(int style)添加工具栏createToolBarManager(int style)创建工具栏的管理器对象getToolBarManager()获得createToolBarManager创建的工具栏createToolBarControl(Composite parent)创建工具栏控件getToolBarControl()获得createToolBarControl创建的工具栏addCoolBar(int style)添加可拖动工具栏的控件createCoolBarManager(int style)创建可拖动工具栏的管理器对象getCoolBarManager()获得createCoolBarManager可拖动工具栏的管理器对象createCoolBarControl(Composite composite):创建可拖动工具栏的控件getCoolBarControl():获得createCoolBarControl方法返回的控件对象addStatusLine():添加状态栏createStatusLineManager():创建状态栏管理器getStatusLineManager():获得createStatusLineManager方法创建的状态栏管理器对象createStatusLine(Shell shell)创建状态栏run(boolean fork,boolean cancelable,IRunnableWith Progress runnable)可以开辟一个线程,并显示进度setStatus(String message)设置状态栏显示的字符showTopSeperator()是否显示菜单栏于主窗口的分割线
四. JFace对话框:
MessageDialog:可显示提示信息的对话框MessageDialog.openError(Shell parent,String title,String message)错误消息对话框MessageDialog.openConfirm(Shell parent,String title,String message)确认消息对话框MessageDialog.openInformation(Shell parent,String title,String message)消息对话框MessageDialog.openQuestion(Shell partent,String title,String message)询问对话框MessageDialog.openWarning(Shell parent,String title,String message)警告对话框(JFace语言包org.eclipse.jface_*.jar,org.eclipse.jface.text.jar )MessageDialogWithToggle:一般在保存首选项所设置的值时显示是否保存的提示信息 ProgressMonitorDialog:可以显示后台线程进度的对话框InputDialog:用于输入信息的对话框,同时可以验证用户的输入,并可以验证的信息显示在对话框中PreferenceDialo:专门为设置首选项所使用的对话框TitleAreaDialog:带有标题、图标和描述信息的对话框WizardDialog:向导式对话框ErrorDialog:根据错误级别显示错误信息。
五. 向导式对话框:
IWizardPage:表示一个向导页,一个向导过程由多个向导页组成的
IWizard:负责管理该向导所有的向导页(WizardPage)
IWizardContainer:显示向导内容(Wizard)的容器
向导页面:每一个向导页面都有继承自IWizardPage类,并且需要实现createControl抽象方法,在createControl有控件修饰语setControl
向导:必须继承自IWizard类,必须使用performFinish方法,该方法为单击“完成”按钮后调用  
讲向导页面添加到向导中使用addPage方法,需按照页面顺序
覆写canFinish,设置“完成”按钮的可用状态
覆写performCancel,判断“取消”按钮的状态
六.首选项 :

每个首选项页面都要继承自PreferencePage类,而且必须实现createContents的抽象方法,在createContents方法中可以创建页面的控件

创建步骤:1.创建一个PreferenceManager对象PreferenceManager manager2.创建一个节点对象    PreferenceNode  nodeOne3.将该节点添加到根节点中 manager.addToRoot(nodeOne);4.定义一个“首选框”对话框,并将manager作为参数传入PreferenceDialog dlg;5.创建保存选项设置值对象  PreferenceStore  preferenceStore6.装载该文件中的设置值  preferenceStore.load();7.将该设置赋值给该对话框 dlg.setPreferenceStore(preferenceStore);8.打开对话框  dlg.open()9.最后关闭对话框后,保存当前设置 preferenceStore.save() 
七.MVC的表格、树和列表

TableViewer(表格) TreeViewer(树)

八.其他:

编辑器,RCP插件开发


http://chatgpt.dhexx.cn/article/cYdajjM6.shtml

相关文章

matlab swt函数,matlab swt 函数出错

matlab swt 函数出错 我在用matlab swt 函数分解信号时总是出现以下错误,麻烦各位高手告知该怎么修改,swt函数如何ERROR ... ---------------------------------------------------------------------------------------------------------------------…

【SWT】自定义数据表格

目的 使用SWT技术自定义数据表格,本文抛砖引玉,给出了SWT构建数据表格的基本思路和简单实现。更多特殊需求即表格功能实现待续…… 思路 数据表格由表格头与表格体两边部分组成。 表格头部分是固定的,其字段右侧包含一个简单的表格工具–…

【SWT】Lable 文字折行

目标 当Label 中的文字过多时,使得文字折行显示。 效果如图所示: 分析与实践 Label 自带样式是一行显示所有信息。当一行显示不下时,超出部分会被隐藏掉,当Label有足够长度时再将其展示出来。Label这种处理超出部分的方式很粗…

java swt 几种布局_实战SWT布局

fortune 阅读(577) 评论(0) 编辑 收藏 所属分类: java技术 标准的SWT布局类FillLayout:在容器中以相同的大小单行或单列的排列组件 RowLayout:以单行或多行的方式使用几个选项(fill,wrap,spacing,justify,type)定制组件的排列方式 GridLayout&#xff…

【SWT】内容分割线

目标 SWT 容器中画横向直线或竖向直线将容器中的内容分割开来。本文介绍了官方的两个示例,效果图见实践部分。 分析 SWT 中至少由两种方法画直线(横向或纵向) SWT 中的GC可以画直线 这种方法最容易想到,但实现起来比较麻烦&a…

SWT

strock width transform,全称笔画宽度变换,是一种局部的图像算子用于提取字符(letter)的笔画宽度作为图像特征。算法步骤如下: 分成三个部分: - 用canny算子计算梯度及方向 - SWT提取笔画宽度得到字符候选区域&am…

eclipse下搭建SWT图形界面开发环境

什么是SWT 参考:http://www.cppblog.com/baby-fly/archive/2009/10/20/99008.html 用java的人一定都知道AWT和Swing,而SWT(Standard Widget Toolkit)则是由Eclipse项目组织开发的一套完整的图形界面开发包,虽然当初仅仅是IBM为了编写Eclipse的…

SWT布局(Layouts)

每种类型操作系统对屏幕的定义不一样,在开发跨平台应用软件时,我们一般都会使用布局(Layout)来管理复合控件(Composite)中子控件的位置和大小。通过布局,程序员可以充分展示那些埋没已久的艺术细…

SWT简介

SWT简介 1. 为什么要使用SWT?  SWT是一个IBM开发的跨平台GUI开发工具包。在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit)。虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问…

[转]实时股票数据接口大全

from: http://www.21andy.com/blog/20090530/1313.html 实时股票数据接口大全 股票数据的获取目前有如下两种方法可以获取:1. http/javascript接口取数据2. web-service接口 1.http/javascript接口取数据 1.1Sina股票数据接口 以大秦铁路(股票代码:…

股票数据在线获取

推荐:使用如下地址注册tushare并分享此链接。 https://tushare.pro/register?reg133232 分享此链接,注册tushare. 以前是使用tushare等下载保存到本地数据库后进行计算分析。 现在不想维护本地数据库,想使用时直接在线获取数据。经查找如…

获取股票实时交易数据的方法

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴! 获取股票实时交易数据的方法 注:本文为原创文章,转载时请注明转载地址。炒股有一段时间…

实时股票数据接口 (转,以防有用)

 http://blog.sina.com.cn/s/blog_510844b70102wrvf.html 实时股票数据接口 股票数据的获取目前有如下两种方法可以获取: 1. http/javascript接口取数据 2. web-service接口 1.http/javascript接口取数据1.1Sina股票数据接口 以大秦铁路(…

获取股票数据【实时更新股票数据、创建你的股票数据】、计算交易指标【买入、卖出信号、计算持仓收益、计算累计收益率】

在上一次获取股票数据【使用JQData查询行情数据、财务指标、估值指标】学习了使用JQData来查询股票相关数据, 这次则开始一点点构建咱们的量化交易系统了。 量化交易平台功能模块了解: 对于一个量化交易平台,它主要包含如下功能模块&#x…

使用Python获取股票实时数据和历史数据

决定新建一个专栏,专门研究股票数据的API接口。 由于不是混金融领域的人,百度调研了一会儿,没有找到合适的大公司维护的API接口。 yahoo-finance PyPI 这玩意架梯子都访问不到数据,不知道乍回事。许多大牛维护的pip包都是基于这…

Tushare免费获取股票数据:实时数据,历史数据,行情数据

一 操作手册 引导用户顺利开始使用Tushare Pro数据,以下步骤将带您开始Tushare数据之旅: 用户注册登录后可调用数据:https://tushare.pro/register?reg399205 二 如何获取TOKEN凭证 1、登录成功后,点击右上角->个人主页 2、…

如何用 Python 获取实时的股票数据?

这个我会!先上图 这篇回答中,我将向你展示两种不同的代码版本(加强版和一般版) 代码运行环境说明(非常重要) Python版本要求 Python 3 需要安装的库 efinance 库的安装方法是:打开 cmd&#x…

怎么用Python获取股票的实时数据?

学习目标: 应用industry实现行业股票列表的获取应用history_bars实现股票合约历史行情数据获取应用get_fundamentals实现股票基本面数据获取使用query的过滤条件完成股票数据的过滤应用scheduler定时器实现股票数据定期获取 1、 数据接口种类 获取指定行业、板块…

SAP UI5 Focus related

tap, keydown, keypresssap.ui.core.FocusHandlersap.ca.scfld.md.app.CommonHeaderFooterHelperevent new jQuery.Event(originalEvent);focusin, activate, blur, focusout, sapfocusleaveoElement._handleEvent(oEvent); 要获取更多Jerry的原创…

Consider defining a bean of type ‘com.qf.user.consumer.feign.api.UserFeignAPI‘ in your configuration

Consider defining a bean of type ‘com.qf.user.consumer.feign.api.UserFeignAPI’ in your configuration… 引导类加注解EnableFeignClients