web-dev-qa-db-ja.com

Java Swing-JScrollPaneを使用してトップにスクロールさせる

JScrollPaneを使用して、テキストエディターとして機能するテキストコンポーネントを持つJFrameでスクロールできるようにします。このエディターでテキストを設定した後、私がやりたいことは、テキストを一番上までスクロールして、ファイルの先頭にある内容を確認できるようにすることです。

誰もこれを行う方法を知っていますか?

74
Robyn

テキストコンポーネントで setCaretPosition(0) を呼び出すと、テキストコンポーネントが上部にスクロールします。

122
Craig

テキストコンポーネントを使用していない場合は、ここに投稿されているスレッドをご覧ください。.. JScrollPaneでのスクロールバーの設定

彼らの解決策は、invokeLaterを介してスレッドをスピンオフすることです

final JScrollPane scroll = new JScrollPane(text);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
   public void run() { 
       scroll.getVerticalScrollBar().setValue(0);
   }
});
35
Eric Warriner

これにより動作します:

DefaultCaret caret = (DefaultCaret) textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
10
Pb600

JComponent.scrollRectToVisible() を使用します

さらに情報が必要な場合は、 こちらの記事

7
ykaganovich

テキストコンポーネントのsetCaretPosition(0)の直後にsetText(String t)メソッドを使用できます。

7
aosphyma

これを試すことができます:

 scrollPane.getViewport().setViewPosition(new Point(0,0));

JavaDocsによると、setViewPosition()は次のように動作します。

ビューポートの左上隅に表示されるビュー座標を設定します。ビューがない場合は何もしません。

6

方法は次のとおりです。

textArea.setSelectionStart(0);
textArea.setSelectionEnd(0); 
1
Richard T