当前位置: 首页 > news >正文

建设网站聊天室企业网络营销推广平台

建设网站聊天室,企业网络营销推广平台,淘宝关键词排名查询工具免费,在那个网站做直播好赚钱JFace 是建立在 SWT 之上的 UI 部件,它是 SWT 的扩展并能和SWT交互。 ApplicationWindow和Action org.eclipse.jface.window.ApplicationWindow; JFace为了简化窗口的设计特别设计了类,比如ApplicationWindow这一个类,它里面包含了六个默认…

JFace 是建立在 SWT 之上的 UI 部件,它是 SWT 的扩展并能和SWT交互。

ApplicationWindow和Action

org.eclipse.jface.window.ApplicationWindow;

JFace为了简化窗口的设计特别设计了类,比如ApplicationWindow这一个类,它里面包含了六个默认方法,分别用于创建内容、菜单、工具栏、状态栏以及初始化和销毁。这样使整个程序的结构易于控制,而不是像单独用SWT开发时一切需要程序员自己实现。

ApplicationWindow创建窗体

窗体的布局 默认为网格式布局(GridLayout)
public class JFaceWindowsClass extends ApplicationWindow {JFaceWindowsClass() {//父类接受一个参数为Shell类的对象作为父窗口句柄,//如果这个窗口为顶级窗口的话,则传nullsuper(null);}public void run() {//直到窗口关闭方能从 open()方法返回setBlockOnOpen(true);//打开窗口open();//关闭窗口时释放在操作系统中用到的资源Display.getCurrent().dispose();}//创建并放置窗口小部件public Control createContents(Composite parent) {// 设置窗体大小parent.getShell().setSize(500, 375);// 设置窗体标题parent.getShell().setText("JFace ApplicationWidows 实例");return parent;}public static void main(String[] args) {new JFaceWindowsClass().run();}
}

在 JFace 窗口添加 SWT 基本组件:createContents()

ApplicationWindow 将在所有其他窗口控件创建之后,窗口在屏幕上显示之前调用createContents方法。

ToolBarManager和MenuManger

    JFaceWindowsClass() {// 父类接受一个参数为Shell类的对象作为父窗口句柄,// 如果这个窗口为顶级窗口的话,则传nullsuper(null);//在构造函数中调用addMenuBar和addToolBar让工具条和菜单显示出来addMenuBar();addToolBar(SWT.FLAT | SWT.WRAP);}

ToolBarManager 是对SWT的ToolBar控件的封装。

//构造方法
public ToolBarManager() 
public ToolBarManager(int style) 
public ToolBarManager(ToolBar toolbar)

一般我们都是向ToolBarManager里面添加Action,显示的效果就是一个Button

    //创建工具条@Overrideprotected ToolBarManager createToolBarManager(int style) {ToolBarManager toolbar = new ToolBarManager();return toolbar;}

MenuManger
    //创建菜单@Overrideprotected MenuManager createMenuManager() {MenuManager menubar = new MenuManager();MenuManager fileMenu = new MenuManager(" &File ");menubar.add(fileMenu);return menubar;}

1

现在这样还是没有效果的,要想有效果。还要加Action


自定义Action动作

action 通常被称为动作命令, 可以关联到菜单,工具条,以及按钮。action 允许共享多个控件触发代码从而消除冗余代码。

Action构造器
protected Action()
protected Action(String text) 
protected Action(String text,ImageDescriptor image) 
protected Action(String text,int style)

Action是jface中的一个概念,在jface中通过org.eclipse.jface.action中的Action和ActionContributionItem类实现了视图和处理代码的分离,这样无论何时用户触发了一个控件的事件,都会激活一个相应的Action类实例来进行时间处理。

Action的功能

Action里面最重要的方法是run(),它也是事件触发以后执行的代码。

public class NewAction extends Action {@Overridepublic void run() {System.out.println("点击了 新建");}//新建文件public NewAction() {//设置该action的对应按钮上的文本和按钮风格super("新建",AS_PUSH_BUTTON);//设置提示标签setToolTipText("新建文件");}
}

调用了父类的构造函数,其中第一个参数是Action对应的文本,而第二个参数则是一个风格参数。

效果就是Action被附加在了一个按钮上面,而按钮上显示的文本就是新建


Action关联菜单和工具栏

修改上述JFaceWindowsClass类中的重载方法

	//创建工具条@Overrideprotected ToolBarManager createToolBarManager(int style) {ToolBarManager toolbar = new ToolBarManager();toolbar.add(new NewAction());return toolbar;}//创建菜单@Overrideprotected MenuManager createMenuManager() {MenuManager menubar = new MenuManager();MenuManager fileMenu = new MenuManager(" &File ");fileMenu.add(new NewAction());menubar.add(fileMenu);return menubar;}

运行后,长这样。

菜单和工具栏共用一个 Action ,无论是从菜单还是从工具栏执行都能实现文件新建

你可以直接点击工具栏的新建,如下:

也可以在菜单栏中 File-新建

不管点击哪个,都能触发我们刚自定义的NewAction类中的run方法


ActionContributionItem

Action 类似 SWT 的事件,但 Contribution 的功能更复杂,它包括两个主要的 Contribution 类: ContributionItem 类、 ContributionManager 类。
 Contribution直译:贡献、捐赠
其中 ContributionItem 类提供个别的 GUI 组件的触发行为。 ActionContributionItem 类是
ContributionItem 的子类,该类执行应用程序关联的 GUI 行为 (Action)。它并不设置组件在窗体的显现,而是通过 fill()方法实现

MessageDialog

MessageDialog的用法

MessageDialog的用法很简单,只需要一句话.

MessageDialog.openInfomation(shell,title,message);
MessageDialog.openConfirm(shell,title,message);
MessageDialog.openQuestion(shell,title,message);
MessageDialog.openError(shell,title,message);

这四个的不同之处有三点:
                                提示的图标、                  显示的按钮、                   返回值
openInfomation       类似i的图标                    一个确定                           void
openConfirm           问号图标                        确定和取消                        boolean
openQuestion         问号图标                        是和否                               boolean
openError               一个X的图标                   确定                                  void


确认信息对话框

信息提示对话框用来向用户显示提示性的信息,用户通过对话框上的按钮来对信息进行确认。

构造
public static boolean openConfirm(Shell parent, String title, String message)
//使用举例
MessageDialog.openConfirm(shell, "对话框","请确认信息");


提示信息对话框

构造
public static void openInformation(Shell parent, String title, String message)
//使用举例
MessageDialog.openInformation(shell, "对话框","提示信息");


错误信息提示对话框

构造
public static void openError(Shell parent, String title, String message)
//使用举例
MessageDialog.openError(shell, "对话框","错误信息");


输入值对话框

InputDialog第5个参数,对输入值进行验证类。IInputValidator接口的一个实例就行,
需要重写isValid()方法
 // 定义一个输入对话框InputDialog dlg = new InputDialog(shell, "InputDialog标题", "请输入XXX", "初始化值", null); if (dlg.open() == InputDialog.OK) { //打印输入的值System.out.println(dlg.getValue());}


重要

自定义对话框

自定义对话框是通过自定义一个类通过继承 Dialog 类来定制的。

public class CustomDialog extends Dialog { ......
}


向导对话框

Wizard类

其他对话框

颜色选择对话框

字体选择对话框

文件选择对话框


TableViewer

TableViewer

TableViewer和Table关系

TableViewer把Table组件作为一个实例变量,从而实现了对Table功能的扩展

public class TableViewer extends AbstractTableViewer {private Table table;
}
TableViewer构造
public TableViewer(Composite parent) 
public TableViewer(Composite parent,int style) 
public TableViewer(Table table)

使用TableViewer的好处在哪

将组件的数据和组件显示分离开来,例如,

将表格和表格中的数据分离开来,使用SWT的Table、TableColumn和TableItem空间展现表格,

而使用TabelViewer等查看器管理表格的数据。这种设计很大程度上简化了表格、树等复杂的UI编程


TableViewer使用

在得到由List装载的包含数据信息的实体类对象后,

接下来就是使用TableViewer来显示这些数据,实现过程一般要经过如下步骤:

第一步:创建一个TableViewer对象,并在构造函数中用式样设置好表格的外观,这与其他SWT组件的用法一样。

第二步:通过表格内含的Table对象设置布局方式,一般都使用TableViewer的专用布局管理器TableLayout。该布局方式将用来管理表格内的其他组件(如TableColumn表格列)。

第三步:用TableColumn类创建表格列

第四步:设置内容器和标签器。内容器和标签器是JFace组件中的重要概念,它们分别是IStructuredContentProvider、ITableLabelProvider两个接口的实现类,它们的作用就是定义好数据应该如何在TableViewer中显示

第五步:用TableViewer的setInput方法将数据输入到表格。



表格内容提供器ContentProvider

IStructuredContentProvider


表格标签提供器LabelProvider

ITableLabelProvider


TreeViewer

树内容提供器ContentProvider

TreeViewer的内容提供器(ITreeContentProvider)构建树中比较复杂的部分,它为树的显示提供了内容,内容提供器要实现的方法如下。

1.  getElements

public Object[] getElements(Object inputElement);

当程序开始构建树时,首先调用getElements返回一个对象的数组,此数组对象表示当前树的根节点,inputElement参数为TreeViewer的输入(setInput的输入数据)。

--------------------------------------
2.  hasChildren

public boolean hasChildren(Object element);

当TreeViewer显示一个节点后,会调用hasChildren函数判断当前节点是否有子节点,如果有子节点则显示“+”,element参数为要判断是否有子节点的节点。

--------------------------------------
3.  getChildren

public Object[] getChildren(Object parentElement);

当用户选择节点打开子节点时,会调用getChildren函数返回下一层子节点,parentElement参数为选择的节点。
--------------------------------------

4.  getParent

public Object getParent(Object element);

可以通过此方法返回element的父节点。
--------------------------------------

5.  inputChanged

public void inputChanged(Viewer viewer, Object oldInput, Object newInput);

当输入改变时调用此方法。

--------------------------------------
6.  dispose

public void dispose();

当树销毁时被调用。

通过getElements方法得到根,再通过hasChildren判断根下是否有子节点,如果有子节点,可以通过getChildren得到所有的子节点


树标签提供器LabelProvider

树查看器使用的标签提供器为 ILabelProvider

ILabelProvider主要实现getImage和getText函数。当TreeViewer得到一个节点后会通过getText得到此节点的显示文本,通过getImage方法得到节点的显示图标


TreeViewer使用举例

构造器
TreeViewer(Composite parent) 
TreeViewer(Composite parent, int style) 
TreeViewer(Tree tree)

TreeViewer 通过 setContentProvider 方法设置内容提供器,这个方法继承自 AbstractTreeViewer ,通过 setLabelProvider 方法设置标签提供器,这个方法继承自 ColumnViewer 。 TreeViewer 类的使用主要围绕内容和标签提供器两个类来进行。


 TreeViewer 常用API

 editElement(Object element, int column)开始编辑给定元素。getCellEditors()获得这个树查看器的单元编辑器。getCellModifier()获得这个树查看器的单元修改器。getControl()获得与这个查看器相关的控件。getTree()获得树查看器的树控件。getExpanded(Item item)返回给定的 SWT 项是否展开或收缩。showItem(Item item)显示给定项。isExpandable(Object element)返回代表给定元素的树的节点是展开还是收缩。setSelection(List items)设置选择给定的列表项。setCellEditors(CellEditor[] editors)为树查看器设置单元格编辑器。removeAll(Control widget)从给定的控件中移除所有项。setCellModifier(ICellModifier modifier)为树查看器设置单元格修改器。setLabelProvider(IBaseLabelProvider labelProvider)设置标签提供器。setExpanded(Item node, boolean expand)设置给定项的展开状态。
http://www.hkea.cn/news/286746/

相关文章:

  • 做网站销售怎么开发客户自己做一个网站
  • wordpress发布文章空白整站优化 mail
  • vs怎么做网站的首页seo知识培训
  • 网站建设的一般步骤包括知乎关键词排名工具
  • 网页设计怎样做一个网页seo软件哪个好
  • 销售性网站建设需求seo案例
  • 企业怎样选择域名做网站电脑突然多了windows优化大师
  • 网站一元空间有哪些呀品牌策划方案范文
  • 最便宜的网站建设企点
  • 网站代码加密深圳新闻今日最新
  • 不要钱做网站软件网站seo优化效果
  • 公司做网站提供产品加盟费互联网销售怎么做
  • 视频网站开发架构百度app最新版本
  • 网站上内容列表怎么做的网站模板中心
  • 上海利恩建设集团有限公司网站国内好用的搜索引擎
  • 网站模板论坛今日重大军事新闻
  • 昆山自适应网站建设电商平台的营销方式
  • 盘龙区网站建设外包高级搜索引擎技巧
  • 什么做的网站吗58百度搜索引擎
  • wordpress 企业站开发口碑营销的概念
  • 广州免费核酸检测点东莞seo项目优化方法
  • 学风建设网站版块设计个人网站
  • 网站底部连接怎么做福州seo推广
  • 生猪价格今日猪价行情关键词优化是什么工作
  • 网站建设公司下载搜索引擎查询
  • 韩国吃秀在哪个网站做直播企业宣传
  • 江西网站建设成都百度
  • 糯米团网站怎么做微信软文范例100字
  • 如何在社交网站上做视频推广seo营销的概念
  • 大连做网站仟亿科技最新域名查询