Java - 如果 setEditable(false) 则无法向下滚动 JTextArea

标签 java swing

我有一个JTextArea setEditable(false) 内不可编辑 ( JScrollPane )我希望它自动滚动,以便当文本添加到该区域时最后一行可见(使用 append() )。

我已经尝试过移动插入符号、选择所有文本并使用 DefaultCaret,但我无法让它滚动。有办法实现吗?

这是我尝试过的: https://gist.github.com/Greffin28/f38bb9c9ad8281de00e2

最佳答案

始终将 JTextArea 括在 JScrollPanel 中否则,当没有行大于窗口高度时,它将不起作用。

要设置滚动位置,请阅读这篇文章 How to adjust position of scroll in the scrollpane

示例代码:

    JTextArea textArea = new JTextArea();
    textArea.setEditable(false);
    textArea.setText("abc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\nabc xyz \n\n\n\n\n");

    JScrollPane scrollPane = new JScrollPane(textArea);
    // now add scrollPane  to your desired panel.

enter image description here

关于Java - 如果 setEditable(false) 则无法向下滚动 JTextArea,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23429373/

相关文章:

java - 如何使物体沿其旋转方向移动?

java - 使用 Jackson 将 MongoDB 日期字段反序列化为 Java POJO

java - 向应用程序添加脚本安全性

java - 如何在构建 java 应用程序后使属性文件可用

java - 如何垂直移动 JApplet 中的图像?

java - ActionListener 是如何工作的?

java - 在eclipse中创建项目

java - 301 永久移动

java - 调整 JFrame 大小时会发生什么?

java - 如何在下次绘图之前清除 jPanel