• Swing之针对JTextArea的滚动条自动跟随。


    在使用JTextArea显示数据的时候,我们经常需要为它添加滚动条。至于如何添加滚动条,在上一篇文章已经说过了。

    这次说说如何让滚动条自动跟随在最后,这也是一个非常实用的功能。

    用法很简单,我们知道在JScrollPane添加JTextArea的代码是这样的:

    jScrollPane.setViewportView(textArea);

    它会返回一个JViewport对象,那么这个JViewport 是什么呢?我们来看看它的介绍:

    用于查看基础信息的“视口”或“观察孔”。在滚动时,移动部分称为视口。这好像通过照相机的取景器进行查看。将取景器向上移动会将图片顶部的内部移入视野,而底部的内容将消失。  

    也就是说,当我们拖动滚动条时,能看到的会动的部分就是JViewport。

    在JViewport里,我们找到一个方法,setViewPosition(Point p);这个方法是设置JViewport上的哪个坐标会显示在视口左上角(就是0,0)。

    我们可以利用这个方法完成这一功能。

    int height = 20;
    Point p = new Point();
    p.setLocation(0, logTxtArea.getLineCount() * height);
    logJScroll.getViewport().setViewPosition(p);

    看看这段代码最主要的内容:

    logJScroll.getViewport().setViewPosition(p);

    它把p所表示的坐标显示在(0,0)这个位置,而p所表示的坐标是计算出来的。它根据logTxtArea的行数来计算y坐标,使得Y坐标是整个JTextArea的行数值*每行的高度。

    假设有10行,每行高度为10,那Y就是100.

    把(0,100)这个点显示在视口右上角(0,0)会发生什么?那只能是滚动条自动拖到最后以把这个点放到(0,0)这个坐标去了。所以这个滚动条永远都会在尾部

    更多学习资料:Here

  • 相关阅读:
    hibernate关联关系(多对多)
    hibernate关联关系(一对多)
    hibernate主键生成策略
    hibernate01
    利用Struts2拦截器完成文件上传功能
    layui的CRUD案列
    Struts2的CRUD
    Git中.gitignore文件不起作用
    在 Visual Studio 中使用 Q# 进行量子编程
    Elasticsearch 搜索
  • 原文地址:https://www.cnblogs.com/cha1r/p/3446331.html
Copyright © 2020-2023  润新知