JScrollPaneを使用して、テキストエディタとして機能するテキストコンポーネントを持つJFrameでスクロールできるようにしています。このエディターでテキストを設定した後、ファイルの先頭に何があるかを確認できるように、テキストを一番上までスクロールして戻します。
誰かがこれを行う方法を知っていますか?
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);
}
});
invokeLater
スレッドをスピンオフするのではなく、現在のイベント(ボタンのクリック、または呼び出すコードのコンテキストなどinvokeLater
)および他の既にキューに入れられているイベントの終了後に実行されるイベントをキューに入れるだけです。
使用する JComponent.scrollRectToVisible()を
さらに情報が必要な場合は、こちらの記事をご覧ください
あなたはこれを試すことができます:
scrollPane.getViewport().setViewPosition(new Point(0,0));
JavaDocsによると、setViewPosition()は次のように動作します。
ビューポートの左上隅に表示されるビュー座標を設定します。ビューがない場合は何もしません。