そこで、を使用して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);
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加