SWT和JFace应用笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39819880/article/details/84302719
SWT和JFace应用笔记

在这里插入图片描述
链接:https://pan.baidu.com/s/1_ukYlSIYpKbCGhfHm2-vMQ
提取码:xla3

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

TableViewer(表格) TreeViewer(树)

八.其他:

编辑器,RCP插件开发

猜你喜欢

转载自blog.csdn.net/weixin_39819880/article/details/84302719