gpt4 book ai didi

java - 仅当附加文本时 JTextArea 滚动到底部

转载 作者:行者123 更新时间:2023-12-01 18:16:27 25 4
gpt4 key购买 nike

我正在尝试创建一个 JTextArea ,每次将文本附加到该文本区域时,它都会滚动到底部。否则,用户应该能够滚动顶部并查看上一条消息。我使用了这段代码:

JTextArea terminalText  = new JTextArea();
JPanel terminal = new JPanel();
terminal.setLayout(new BorderLayout());
add(terminal); //Adds the terminal to mother JPanel

//I added scrollbar to my JTextArea
JScrollPane scroll = new JScrollPane(terminalText);
terminal.add(scroll, BorderLayout.CENTER);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

scroll.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
e.getAdjustable().setValue(e.getAdjustable().getMaximum());
}});

到目前为止,每次我使用 terminalText.append< 将某些内容附加到 terminalText 时,这段代码似乎都会使我的文本区域滚动到 terminalText 文本区域的底部

但是,用户无法使用滚动条滚动到顶部来查看上一条消息。有没有办法来解决这个问题?我应该使用 DocumentListener 来实现此目的吗?

最佳答案

查看Smart Scrolling .

如果滚动条位于底部,则在附加文本时您将看到新文本。

如果用户滚动到不同的位置,则视口(viewport)将停留在那里,直到用户滚动回底部。

关于java - 仅当附加文本时 JTextArea 滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29224709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com