我用的是java的awt写的记事本,在实现查找时,怎么将记事本的文本区域里找到的字符串选中,我在处理对话框的查找按钮事件里用了text.select("start","end"),本来想的是点一下"查找"text里的字符就会被选中,但是为什么只有在关闭了对话框时text里的才能被选择.怎么做?????麻烦有知道的告诉我一下,谢谢!

解决方案 »

  1.   

    焦点问题。要聚焦到你要选中的控件。查查API,看看哪个方法
      

  2.   

    我用了text(文本区域).requestFocus();还是不能啊:
    下面是我的部份代码向上查找的:edit:处理编辑的一个类,jsb:是一个frame(记事本框架),text:记事本里的文本区域,
                     s1:查找的字符串
    int n=edit.this.jsb.text.getCaretPosition();

    int c=edit.this.jsb.text.getText().lastIndexOf(s1, n);edit.this.jsb.text.append("新字符");
    //edit.this.jsb.text.setSelectionStart(c);
    //edit.this.jsb.text.setSelectionEnd(s1.length()+c);
    edit.this.jsb.text.requestFocus();
    edit.this.jsb.text.select(c, c+s1.length());
      

  3.   

    把你的对话框设成非模式的就行了,dialog.setModal(false)
      

  4.   

    我用了dialog.setModal(false)还是不行(初如时设的是模式的),如果在最开始初始化对话框时就可以了,为什么在后面不能改呢
      

  5.   

    后面也行,不过必须在dialog.setModal(false)之后再让对话框可见dialog.setVisable(true)。呵呵试试吧。