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

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

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

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

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

简易代码如下:

[code="java"]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()); // 通知外部的监听
}

}[/code]