`
longgangbai
  • 浏览: 7331408 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JFace中对话框的经典应用

阅读更多
    在项目中必须针对Jface中代码进行相关的重写实现自己的功能。
 源代码如下:
      在项目中不管是属性页还是对话框如果要添加特殊的记忆功能(在项目启动之后,显示上次或者以前的信息),一
般都要是写在本地应用系统中的xml中。
package com.vnvntrip.plugin.dev.views.custom;

import java.io.IOException;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.DialogSettings;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
/**
 * 重写jface中dialog的使用功能,记下Dialog中的值,当再次打开这个Dialog的时候,还原这些值。
 * 这就需要把这些Dialog的值保存起来。Dialog的IDialogSettings类提供了这个功能。
 * 记得建立需要的文件,在当前workspace下建立文件夹content,然后在文件夹下建立system.xml文件。当然你也可以利用程序来实现。
 * 
 * 带提示框的Dialog
 * 使用方法和前边相同,不同的是不是继承自Dialog而是继承自TitleAreaDialog,然后在createDialogArea中加入两行
 * setTitle("标题");
 * setMessage("提示信息")
 * setMessage可以加上图片,加入的办法是setMessage("提示信息",IMessageProvider.WARNING);如果想加入其他的图片,调用相应的常量。
 * 
 * @author longgangbai
 *
 */
public class JfaceDialog extends Dialog {

	private Text text;
	public JfaceDialog(Shell parentShell) {
		super(parentShell);
	}
	 /**
         * 添加自己的控件
         */
        @Override
	protected Control createDialogArea(Composite parent) {
		Composite container = (Composite) super.createDialogArea(parent);
		container.setLayout(new RowLayout());
		text = new Text(container, SWT.BORDER);
		text.setLayoutData(new RowData(100,-1));
		//设置关闭保存的存储信息
		if (text.getText() == null || text.getText().equals("")){
			restoreState();
		}
		return container;
	}
        /**
         * 重写Dialog中按钮的个数
         */
        @Override
	protected void createButtonsForButtonBar(Composite parent) {
	   super.createButtonsForButtonBar(parent);
        }
        /**
         * 加入右上角的最大化和关闭
         */
        @Override
	protected int getShellStyle(){
		return super.getShellStyle()|SWT.RESIZE|SWT.MAX;
	}
        /**
         * 改变dialog的大小
         */
        @Override
	protected Point getInitialSize(){
		return new Point(300,400);//300是宽400是高
	}
       /**
        * 加入自己的按钮
        */
        @Override
	protected void initializeBounds(){
		Composite comp = (Composite)getButtonBar();
		super.createButton(comp, IDialogConstants.OK_ID, "完成", true);
	}
	@Override
	protected void buttonPressed(int button){
		saveState();
	}
	/**
	 * 保存对话框信息的方法
	 */
	public void saveState(){
		if (text.getText() == null || text.getText().equals("")){
			return ;
		}
		IDialogSettings topSettings = getTopSettings();
		IDialogSettings settings =  topSettings.getSection("TestDialog");
		if(settings == null)settings = topSettings.addNewSection("TestDialog");
		settings.put("value", text.getText());
		try{
			topSettings.save("content/system.xml");
		}catch(IOException e){
			System.out.println(e.getMessage());
		}
	}
	/**
	 * 当打开对话框时显示关闭时的各种信息
	 */
	public void restoreState(){
		IDialogSettings topSettings = getTopSettings();
		IDialogSettings settings =  topSettings.getSection("TestDialog");
		if(settings == null) return;
		if (text.getText() == null || text.getText().equals("")){
			text.setText(settings.get("value"));
		}
	}
	/**
	 * 加载保存在对话框的信息
	 * @return
	 */
	public IDialogSettings getTopSettings(){
		IDialogSettings topSettings = new DialogSettings("system");
		try{
			topSettings.load("content/system.xml");
		}catch(IOException e){
			System.out.println(e.getMessage());
		}
		return topSettings;
	}

	

}

 

 

分享到:
评论

相关推荐

    Eclipse_Swt_Jface_核心应用

    Eclipse的SWT (Standard Widget Toolkit) 和JFace是Java GUI开发中的两个重要库,尤其在开发基于Eclipse平台的应用程序时,它们扮演着至关重要的角色。这些库提供了丰富的用户界面组件,使得开发者能够创建出功能...

    Eclipse SWT/JFace 核心应用

    在Eclipse SWT/JFace核心应用中,以下几个关键知识点不容忽视: 1. **组件库**:SWT提供了一整套原生GUI组件,如Button、Text、Table等,开发者可以根据需要自由组合和配置。 2. **事件处理**:SWT通过事件监听...

    Eclipse+SWT_JFace核心应用 随书光盘.zip

    《Eclipse+SWT_JFace核心应用》是由那静编著的一本专业书籍,主要针对的是Eclipse集成开发环境中的SWT(Standard Widget Toolkit)和JFace技术的应用。这本书的随书光盘包含了丰富的资源,旨在帮助读者深入理解和...

    Eclipse SWT/JFace核心应用

    在Eclipse SWT/JFace的核心应用中,以下是一些关键知识点: 1. **控件和布局管理**:SWT提供了多种控件,如Button、Text、Label、Table等,开发者可以根据需求选择合适的控件来构建界面。布局管理器如FillLayout、...

    Eclipse SWT/JFace 核心应用的全部源代码

    Eclipse SWT(Standard Widget Toolkit)和JFace是Java开发中用于构建桌面应用程序的两个关键库。它们都是Eclipse IDE的一部分,提供了丰富的用户界面组件和框架,使得开发者可以创建功能强大的图形化应用程序。在这...

    SWT JFACE in Action(中文)

    SWT(Standard Widget Toolkit)和JFace是Java编程中用于构建图形用户界面(GUI)的两个关键库,尤其在Eclipse开发环境中广泛应用。本篇文章将深入探讨SWT和JFace的相关知识点,帮助读者理解这两个库的功能、优势...

    eclipse swt/jface核心应用源码

    在"eclipse swt/jface核心应用源码"中,你可以期待找到以下核心概念的实现: 1. 控件(Widgets):包括按钮、文本框、树视图、表视图等,这些都是SWT的基本构建块,它们提供了创建用户界面的基础。 2. 数据绑定...

    Eclipse SWT/JFACE 核心应用 配套源代码

    源代码中可能包含JFace的使用示例,如使用Dialogs创建自定义对话框,利用Viewer框架展示和操作数据,以及运用DataBinding进行数据同步。 3. **核心应用**:在"核心应用"的标题中,我们可以期待看到一些基础和关键的...

    eclipse swt/jface 核心应用源码

    在“eclipse swt/jface 核心应用源码”中,你可以找到这两个库的源代码,这对于学习和理解其工作原理非常有帮助。通过阅读源码,开发者可以深入研究如何实现特定的GUI功能,如何优化性能,以及如何利用底层操作系统...

    Eclipse Swt/Jface核心应用 (01-03章)

    通过练习创建带有菜单、工具栏、表视图和对话框的应用,你将深入理解SWT和JFace的协同工作方式。 总之,Eclipse SWT和JFace为Java开发者提供了强大且灵活的GUI开发工具。从基本的组件使用到高级的视图控制,这三章...

    Eclipse SWT/JFace 核心应用光盘源码

    Eclipse SWT(Standard Widget Toolkit)和JFace是Java开发中用于构建图形用户界面(GUI)的库,尤其在开发Eclipse插件和RCP(Rich Client Platform)应用程序时非常重要。这两个库提供了丰富的组件和框架,使得...

    eclipse swt/jface核心应用

    Eclipse SWT(Standard Widget Toolkit)和JFace是用于构建Eclipse插件和RCP(Rich Client Platform)应用程序的重要工具包。这两个库都是Eclipse IDE的一部分,提供了与操作系统底层交互的能力,使得开发者可以创建...

    Eclipse swt/jface核心应用源码(带视频)

    在"eclipse swt/jface核心应用源代码"中,我们可以期待看到如何使用SWT和JFace来创建Eclipse插件或RCP应用的实际示例。这些源代码通常会涵盖以下关键知识点: 1. **组件创建**:如何使用SWT类创建基本的UI元素,如`...

    Eclipse Swt/Jface核心应用 (09-09章)

    《Eclipse Swt/Jface核心应用 (09-09章)》是关于Eclipse插件开发技术的深度解析,涵盖了Swt和Jface两大关键组件的使用与实践。Swt(Standard Widget Toolkit)和Jface是Eclipse平台下用于构建用户界面的主要工具包,...

    Eclipse_Swt_Jface_核心应用_部分19

    第13章 SWT的高级应用.. 262 13.1 打印支持 262 13.1.1 打印类(Printer)和打印数据类(PrinterData) 262 13.1.2 打印程序示例概述 265 13.1.3 打印程序示例:主窗口程序 265 13.1.4 打印程序示例:打开...

    Swt-JFace In Action Gui Design With Eclipse 3.0

    本书深入探讨了SWT(Standard Widget Toolkit)和JFace这两个核心库在构建Eclipse插件和应用程序中的应用。 SWT是IBM开发的一个开源Java GUI库,它提供了与操作系统直接交互的能力,使得Java程序能够创建原生、高...

    swt/jface api帮助文档

    9. **视图和编辑器**:在Eclipse RCP(Rich Client Platform)应用中,JFace提供了视图(View)和编辑器(Editor)的概念,它们是用户界面的主要组成部分。 10. **模型-视图-控制器(MVC)**:JFace鼓励使用MVC模式...

    swt/Jface中文教程

    它包括了对话框管理器、视图管理器、向导框架等组件,可以帮助开发者快速构建复杂的应用程序界面。 - **JFace的特点**:JFace的主要优势在于其高级别的抽象和简化了的开发模型。通过使用JFace,开发者可以减少大量...

    Swt JFace in Action 中文版

    8. **国际化与本地化**:了解如何在Swt和JFace应用中实现多语言支持,以满足不同地区用户的需求。 9. **性能优化**:探讨如何利用Swt和JFace的特性提高应用程序的性能,减少资源消耗。 10. **实战案例**:通过实际...

    Eclipse SWT/JFace 书中 全部实例

    5. Views和Perspectives:构建Eclipse RCP(Rich Client Platform)应用中的视图和视角,以及它们之间的交互。 6. Events和Listeners:注册和处理事件监听器,响应用户操作。 7. SWT Layouts:熟悉不同的布局管理...

Global site tag (gtag.js) - Google Analytics