请问这个JTextArea 的滚动条怎么不跟着滚动啊
2010-11-25 15:48
239 查看
(1)在JTextArea插入最后一条消息之后,使用selectAll()将光标强制移动到JTextArea的最后,实现滚动条的自动滚动。(Aviva中采用的方式) (2)在JTextArea插入最后一条消息之后,使用(JTextArea)recvArea.setCaretPosition(recvArea.getText().length()),将光标移到最后,实现滚动条的自动滚动。 (3)在JTextArea加载了自动滚动条JScroll之后,将JTextArea加入到JScrolPanel的ViewPort中: (有一些Bug,使得图像有点闪烁) recvScrollPane.getViewport().add(recvArea, null); 然后在JTextArea插入最后一条新消息之后,将滚动条的Viewport重新设置到最底端的位置: int height = 20; Point p = new Point(); p.setLocation(0, recvArea.getLineCount() * height); recvScrollPane.getViewport().setViewPosition(p); import java.awt.Rectangle; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingUtilities; public class ScrollTextArea extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JScrollPane jScrollPane = null; private JTextArea jTextArea = null; /** * This method initializes jScrollPane * * @return javax.swing.JScrollPane */ private JScrollPane getJScrollPane() { if (jScrollPane == null) { jScrollPane = new JScrollPane(); jScrollPane.setBounds(new Rectangle(0, 2, 290, 144)); jScrollPane.setViewportView(getJTextArea()); } return jScrollPane; } /** * This method initializes jTextArea * * @return javax.swing.JTextArea */ private JTextArea getJTextArea() { if (jTextArea == null) { jTextArea = new JTextArea(); } return jTextArea; } /** * @param args */ public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { ScrollTextArea thisClass = new ScrollTextArea(); thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); } }); } /** * This is the default constructor */ public ScrollTextArea() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(300, 200); this.setContentPane(getJContentPane()); this.setTitle("JFrame"); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(getJScrollPane(), null); } return jContentPane; } |
private void init()
{
setBounds(0, 0, 300, 150);
final JScrollPane sp = new JScrollPane(ta);
getContentPane().add(sp, "Center");
for (int i = 0; i <= 10; i++)
{
ta.append(i + "/n");
}
JScrollBar sb = sp.getVerticalScrollBar();
sb.setValue(sb.getMaximum());
// TimerTask task = new TimerTask(){
// public void run(){
// ta.append("Time: " + (System.currentTimeMillis() / 1000));
// scrollAndSetCursor();
// }
// };
}
相关文章推荐
- js 怎么兼容性获取滚动条总高度和已经滚动到得位置,这个是个难题,然后用总高度乘70%
- 请问怎么操作才能使这个EXE程序名显示在开始按钮下的最近打开的程序目录里?谢谢!
- 怎么做随滚动条滚动而滚动的层
- 请问ipad上这个模态对话框是怎么做的啊?
- JTextArea动态更新,滚动条自动滚动到底端的一种实现
- jquery实现div跟着滚动条滚动滚,不要根据浏览器窗口定位,根据body定位
- Android 图片轮播,图片左右自动滚动与页面侧滑菜单冲突,请问怎么解决?
- tomcat运行出错,请问这个问题怎么解决?
- 使JTextArea 的滚动条随着记录的增加自动滚动到最后一行
- 在网页中的flash游戏,按方向键浏览器的滚动条会跟着滚动
- 怎么在eclipse的logcat上调出sysout窗口,如下图所示。请问这个问题你解决了吗?
- 使JTextArea控件的滚动条滚动到控件内容的最底部
- 请问安博士插件游戏软件,这个是怎么用的呢?
- 老大们,请问这个空指针错误是怎么产生的?
- 请问这个问题怎么解决
- 用JS怎么禁止window对象的滚动条滚动
- 从另一个view进入到一个tableview时,总是会自动滚动到先前的滚动条位置,我想让它每次进入这个tableview时,都滚动回最顶端
- 请问:金山卫士这个等待的效果怎么做出来的?
- 请问博客园怎么解决的这个问题,信息产业部和公安部要求每个服务商都安装的过滤
- jquey怎么判断滚动条滚动到了底部(这是对前面图片墙的改良)