本人想实现类似记事本中的文本查找功能,点击搜索后弹出搜索对话框,我怎样才能知道用户什么时候点击了对话框中的“查找”按钮呢,同时得到要搜索的文字?
我说一个实现途径, 但我不知道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]