0 0

求:监听非模态对话框的动作5

本人想实现类似记事本中的文本查找功能,点击搜索后弹出搜索对话框,我怎样才能知道用户什么时候点击了对话框中的“查找”按钮呢,同时得到要搜索的文字?
2009年6月05日 09:34

1个答案 按时间排序 按投票排序

0 0

采纳的答案

    我说一个实现途径, 但我不知道Swing中是否有更好的办法.

    从你的"主界面"传一个"调用接口"给"查询窗口" [在这个"调用接口"的实现类里面可以操作"主界面"上的内容] , 在"查询窗口"点击了"查询"按钮后, "查询窗口"将查询条件传给这个"调用接口", 这个"调用接口"又可以操作"主界面", 即可完成这个效果.

    不知道是否说明白了, 这就和你在Swing上使用的各种listener是一样的意思.

简易代码如下:

interface IFilterListener {
    public void filter(String filter);
}

class MainDialog {
    // searchButton 就是主界面上调用查询窗口的按钮
    searchButton.addSelectionListener() {
        SearchDialog dialog = new SearchDialog(new SearchListener()).open();
    }
    
    // 实现
    class SearchListener implements IFilterListener {
         public void filter(String filter);
          // .... filter就是从SearchDialog得到的查询条件, 操作MainDialog的界面
         }
    }
}

class SearchDialog {
    private IFilterListener listener;

    searchButton.addSelectionListener() {
        String filter = getFilter(); // 得到查询条件
        listener.filter(getFilter()); // 通知外部的监听
    }
}

2009年6月05日 09:49

相关推荐

Global site tag (gtag.js) - Google Analytics