我在编程时遇到的问题:使用JScrollPane.getViewport().add(textArea);以后的窗口并没有定位上光标。也就是说当我在textarea里append()文本以后,我的窗体的滚动条并没有像预想的那样出现并且跟踪上光标所在的位置。我想是不是要用JScrollBar去定位一下光标才行,具体有什么建议?
求各位大虾指点迷津!!!
注:以下几种方法均试过:
1)在JTextArea插入最后一条消息之后,使用selectAll()将光标强制移动到JTextArea的最后
2)在JTextArea插入最后一条消息之后,使用(JTextArea)recvArea.setCaretPosition(recvArea.getText().length()),将光标移到最后
求各位大虾指点迷津!!!
注:以下几种方法均试过:
1)在JTextArea插入最后一条消息之后,使用selectAll()将光标强制移动到JTextArea的最后
2)在JTextArea插入最后一条消息之后,使用(JTextArea)recvArea.setCaretPosition(recvArea.getText().length()),将光标移到最后
解决方案 »
- 【类定义中,成员变量和成员方法之间,单独放一个println语句输出语句,能执行吗,这算什么?】
- eclipse3.2 进行gui 开发问题?
- 如何在一个提供多线程功能的Applet上输出1到20的数字?
- java语法的问题(研究jtree的朋友可以来看看,这个例子可以将jtree与mysql联系起来)
- 请问要做个基于rtp协议用jmf来写的语音聊天软件该怎么设计线程的关系?
- CORBA应用(JacORB)部署在win2008 server遇到的问题
- 简单问题,关于JButton!在线给分
- 提问?
- 如何动态改变JTable中的内容
- 帮忙看看下面错误,怎样解决!!!
- 关于构造器的重载。
- 请教javadoc的用法,请高手指教
textarea.setSelectionStart();
textarea.setSelectionEnd();
textarea.repaint();
这个方法我试验了可以的啊。不行的话你先JTextArea.requestFocus();再selectAll();
//我这里采用的是在另一个线程中刷新
//jspMsgPane - JScrollPane SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
jspMsgPane.getVerticalScrollBar().setValue(jspMsgPane.getVerticalScrollBar().getMaximum()+10000);
}
}
);
Point p = new Point();
p.setLocation(0, mainText.getHeight());
this.mainScrollPane1.getViewport().setViewPosition(p);
如果想是有需要再滚动,可写成如下:
Point p = new Point();
if (!mainText.getScrollableTracksViewportHeight()) {
p.setLocation(0, mainText.getHeight());
this.mainScrollPane1.getViewport().setViewPosition(p);
}