JScrollPaneを使用して、テキストエディターとして機能するテキストコンポーネントを持つJFrameでスクロールできるようにします。このエディターでテキストを設定した後、私がやりたいことは、テキストを一番上までスクロールして、ファイルの先頭にある内容を確認できるようにすることです。
誰もこれを行う方法を知っていますか?
テキストコンポーネントで setCaretPosition(0) を呼び出すと、テキストコンポーネントが上部にスクロールします。
テキストコンポーネントを使用していない場合は、ここに投稿されているスレッドをご覧ください。.. JScrollPaneでのスクロールバーの設定
彼らの解決策は、invokeLaterを介してスレッドをスピンオフすることです
final JScrollPane scroll = new JScrollPane(text);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
scroll.getVerticalScrollBar().setValue(0);
}
});
これにより動作します:
DefaultCaret caret = (DefaultCaret) textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
JComponent.scrollRectToVisible() を使用します
さらに情報が必要な場合は、 こちらの記事
テキストコンポーネントのsetCaretPosition(0)
の直後にsetText(String t)
メソッドを使用できます。
これを試すことができます:
scrollPane.getViewport().setViewPosition(new Point(0,0));
JavaDocsによると、setViewPosition()は次のように動作します。
ビューポートの左上隅に表示されるビュー座標を設定します。ビューがない場合は何もしません。
方法は次のとおりです。
textArea.setSelectionStart(0);
textArea.setSelectionEnd(0);