滚动条移到底部后如何启用按钮?

问题描述

因此,我使用了JScrollPane,然后添加了JTextArea。我使用textArea.setCaretPosition(0)重设了滚动条,滚动条位于顶部。一切都很好,直到我想在滚动条到达底部时将禁用按钮设置为启用。

我该怎么做?

解决方法

您可以侦听JScrollPane视口的更改,然后将视口的可见矩形的底部与视口的视图高度(即JTextArea)进行比较:

JViewport viewport = scrollPane.getViewport();
viewport.addChangeListener(e -> {
    Rectangle rect = viewport.getViewRect();
    int bottom = rect.y + rect.height;
    endButton.setEnabled(bottom >= viewport.getViewSize().height);
});

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...