我在JTextArea
内有一个setEditable(false)
不可编辑(JScrollPane
),我想让它自动滚动,以便在文本添加到该区域时显示最后一行(使用append()
)。
我已经尝试过移动插入符号,选择所有文本,并使用DefaultCaret但我无法滚动它。有没有办法实现这个目标?
这是我尝试过的: https://gist.github.com/Greffin28/f38bb9c9ad8281de00e2
答案 0 :(得分:1)
始终将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.
答案 1 :(得分:0)
使用jTextArea.setEnabled(false);