当前位置: 首页 > 面试题库 >

追加后如何自动向下滚动JTextArea?

江仲渊
2023-03-14
问题内容

我创建了一个带有JTextArea的JFrame。我想在每次追加后自动向下滚动文本区域。我应该如何处理?

我已经尝试过log.setCaretPosition(log.getDocument().getLength());,但是什么都没有改变。

package scrollit;

import java.awt.*;
import javax.swing.*;
import static javax.swing.JFrame.EXIT_ON_CLOSE;

public class ScrollIt extends JFrame {

    public static void main(String[] args) {            
        ScrollIt sc = new ScrollIt();            
    }

    public ScrollIt() {
        super();            
        JTextArea log = new JTextArea();
        log.setPreferredSize(new Dimension(50,50));
        setDefaultCloseOperation(EXIT_ON_CLOSE);            
        add(log);            
        pack();
        setVisible(true);

        log.append("a\n");
        log.append("b\n");
        log.append("c\n");
        log.append("d\n");
        log.append("e\n");
        log.append("f\n");
    }
}

问题答案:

有两种方法(但必须将JTextArea放在JScrollPane中)

a)设置插入符号(方法正确)

例如

  DefaultCaret caret = (DefaultCaret) log.getCaret();
  caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

b)JScrollBar从(从JScrollPane)移至最大值



 类似资料:
  • 问题内容: 当内容的高度增加时,有什么方法可以自动向下滚动ScrollPane控件?例如,我在屏幕底部(在ScrollPane内部)有一个TitledPane,当我展开它时,我希望ScrollPane向下滚动,以便可以看到TitledPane的全部内容。 问题答案: 您可以结合使用和和来实现该行为 第一个是获取titlePane的坐标,第二个是设置scrollPane的垂直栏位置。请注意,它的范围

  • 当ScrollPane控件的内容高度增加时,是否有任何方法可以自动向下滚动?例如,我在屏幕底部有一个TitledPane(在ScrollPane内部),当我展开它时,我希望ScrollPane向下滚动,这样我就可以看到TitledPane的全部内容。

  • 问题内容: 当我们向下滚动页面时以及当第二个div遇到顶部边界时,我想粘贴第二个div。修复后,它应与其他页面一起滚动。我该如何实现? 和HTML 在此示例中,滚动页面时应固定第二个div。当我们向上滚动时,应该变成先前的状态。请帮我。 问题答案: 你可以用 注意: 不要忘记在页面中包含jquery库链接(假设您是初学者)

  • 本文向大家介绍vim 向下滚动,包括了vim 向下滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 Ctrl+E 向下滚动一行。 Ctrl+D 向下滚动半屏(可使用该scroll选项配置)。 Ctrl+F 向下滚动全屏。 z+ 在窗口顶部的窗口下方绘制第一行。

  • 问题内容: 我的内部具有以下样式: 一旦向表中添加了足够的数据,这将显示一个垂直滚动条。但是,添加新数据后,我希望该元素自动滚动到底部。 我可以使用哪些JavaScript代码执行此操作?我愿意在必要时使用JQuery中的选项,但希望使用JavaScript解决方案。 问题答案: 如果您不知道何时将数据添加到,则可以设置一个间隔,每隔几秒钟将元素的scrollTop更新为其scrollHeight

  • 问题内容: 我正在学习如何使用TableViews,并且想知道如何查看tableView是向上滚动还是向下滚动?我一直在尝试诸如此类的各种操作,但由于下面是针对滚动视图的操作,并且没有TableView,因此它没有用。任何建议都会很棒,因为我是新来的… 这就是我的tableView代码中的内容 问题答案: 就像@maddy在您的问题评论中说的那样,您可以使用和来检查是否正在滚动,此外,您可以同时使