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

给自定义Dialog加入保留对话框值的功能

XML 
阅读更多

有的时候我们需要这样的功能,记下Dialog中的值,当再次打开这个Dialog的时候,还原这些值。这就需要把这些Dialog的值保存起来。Dialog的IDialogSettings类提供了这个功能。下边是使用方法:
在上例"自定义Dialog"的代码上加入三个函数:

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 == nullreturn;
        
if (text.getText() == null || text.getText().equals("")){
            text.setText(settings.get(
"value"));
        }

    }

    
public IDialogSettings getTopSettings(){
        IDialogSettings topSettings 
= new DialogSettings("system");
        
try{
            topSettings.load(
"content/system.xml");
        }
catch(IOException e){
            System.out.println(e.getMessage());
        }

        
return topSettings;
    }


然后在覆写的buttonPressed函数中调用save

protected void buttonPressed(int button){
        saveState();
    }

在createDialogArea函数中加入取出数据

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;
    }

最后,记得建立需要的文件,在当前workspace下建立文件夹content,然后在文件夹下建立system.xml文件。当然你也可以利用程序来实现。
运行一下看看吧,是不是记住了上次填入的内容.

分享到:
评论

相关推荐

    实现组件可多拽功能:Vue + Element-ui Dialog

    在本文中,我们将深入探讨如何使用Vue.js框架与Element-ui库来实现一个具有拖放...这个组件不仅可以方便地在应用中复用,还保留了Element-ui Dialog的所有原有特性,同时也加入了自定义的拖放功能,提升了用户体验。

    js重写alert和confirm

    重写`alert`,我们可以创建一个新的函数,保留原有的功能,同时加入我们想要的特性。例如,我们可以创建一个`customAlert`函数: ```javascript function customAlert(message) { // 创建一个自定义的HTML元素来...

    jQuery LigerUI V1.1.0

    [修复]修复加载时不显示loading的问题,并加入自定义加载时的支持 [修复]修改grid addRow()如果没有数据的时候row没有高度 [修复]修改可编辑grid中DateEditor编辑错误的问题 下拉框 [需求]支持动态改变值 [需求]...

    大名鼎鼎SWFUpload- Flash+JS 上传

     file_dialog_complete_handler : file_dialog_complete_function, 当文件选取对话框关闭后触发的事件处理函数  upload_start_handler : upload_start_function, 开始上传文件前触发的事件处理函数  upload_...

    easyaUI 创建购物车

    在创建购物车功能时,我们可能需要用到的数据展示组件有表格(datagrid)和对话框(dialog),以及按钮(button)和复选框(checkbox)等交互元素。 1. **数据展示与交互**:在购物车中,商品信息通常以表格的形式...

    KODExplorer 芒果云-资源管理器

    - 可以建立权限组,将功能分配给权限组 - 添加用户,选择所属的权限组。 - 权限按功能划分成颗粒,可以任意配置,例如普通使用者、游客等 - 搜索:支持递归搜索,可选择是否搜索文件内容。 - 增加桌面自定义壁纸。 ...

    使用SkinMagic_Toolkit美化界面

    - **单个对话框窗口**:如果只想为特定的对话框添加皮肤,可以重载对话框视图的 `OnCreate` 函数,并调用 `SetSingleDialogSkin()`,如 `VERIFY( 1 == SetSingleDialogSkin( m_hWnd, "Dialog" ) );`。同时,可以...

    让alert不出现弹窗的两种方法

    如果还需要保留提示功能,可以在重写`alert()`时加入自定义行为,例如使用模态对话框: ```javascript // public.js 文件内容 window.alert = function(str) { // 创建一个自定义模态对话框,显示str字符串,并在...

    c++期末课程设计全套 教职工管理系统

    在教职工管理系统中,MFC用于构建图形用户界面(GUI),包括对话框(Dialog)、控件(如按钮、文本框、列表视图等)和事件处理。 4. **对话框编程**:MFC中的CDialog类用于创建对话框,对话框可以用来输入、显示和...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    这个按钮使这个对话框关闭并发出Accepted 信号的功能。下面我们将利用这个 信号。 7.修改主函数main.cpp,如下: #include #include "widget.h" #include "mydlg.h" //加入头文件 int main(int argc, char *argv[])...

    MFC中控件颜色控制

    - 首先,在对应的对话框类中添加消息映射,即加入`WM_CTLCOLOR`消息处理函数。 - 使用类向导生成默认的`OnCtlColor`函数,并根据需要进行修改。 2. **实现OnCtlColor函数**: - `OnCtlColor`函数的签名如下: `...

    Access+2000中文版高级编程

    2.4.4 将对象赋值给变量 39 2.5 使用集合 41 2.5.1 计算元素的数量 42 2.5.2 访问集合元素 42 2.5.3 对集合元素循环 43 2.6 定制窗体 44 2.6.1 编写定制的属性 45 2.6.2 编写值为对象的属性 48 ...

    Access 2000中文版高级编程(part1)

    2.4.4 将对象赋值给变量 39 2.5 使用集合 41 2.5.1 计算元素的数量 42 2.5.2 访问集合元素 42 2.5.3 对集合元素循环 43 2.6 定制窗体 44 2.6.1 编写定制的属性 45 2.6.2 编写值为对象的属性 48 2.6.3 编写...

    Android实现无标题栏全屏的方法

    例如,如果你想让Activity以对话框样式显示,可以使用`Theme.Dialog`;或者如果你想要透明背景,可以选择`Theme.Translucent.NoTitleBar.Fullscreen`。 在实际开发中,需要注意的是,全屏模式下,状态栏会被隐藏,...

    java词汇解释

    通常用于自定义异常处理或在方法中显式抛出异常。 #### Throws 表示强制异常处理,用于声明方法可能会抛出的异常。 #### Throwable 可抛出的,表示所有异常类的祖先类。所有Java异常都直接或间接继承自`Throwable`...

    基于SIP开发软件电话的一些资源(转自YOUTOO)

    我们先进行一个简单的纯SIP信令(不带语音连接建立)的UAC的SIP终端的程序开发的试验(即一个只能作为主叫不能作为被叫的的SIP软电话模型),我们创建一个MFC应用程序,对话框模式,照上面的说明,...

Global site tag (gtag.js) - Google Analytics