ビュー内のコンテンツが拡大するときにスクロールペインがスクロールしないようにしたい。ポインタはありますか?タイトルでグーグルのバリエーションを試したり、JScrollPane のすべてのドキュメントを読んだりしましたが、まだ少し困惑しています。
編集:スクロールペイン内にテキストペインがあり、その横に別のテキストペインがあり、その横にペインの行番号が表示されます。新しい行が追加されるたびにこの番号枠がいっぱいになるので、おそらくこれが原因でビューが前に進みます。
ビュー内のコンテンツが拡大するときにスクロールペインがスクロールしないようにしたい。ポインタはありますか?タイトルでグーグルのバリエーションを試したり、JScrollPane のすべてのドキュメントを読んだりしましたが、まだ少し困惑しています。
編集:スクロールペイン内にテキストペインがあり、その横に別のテキストペインがあり、その横にペインの行番号が表示されます。新しい行が追加されるたびにこの番号枠がいっぱいになるので、おそらくこれが原因でビューが前に進みます。
スクロールするかスクロールしないかは DefaultCaret で設定可能です
DefaultCaret caret = (DefaultCaret) textPane.getCaret();
caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);
テキストのスクロールに関するRob の素敵なブログ エントリも参照してください。
通常、 JScrollPane はそれを行いません。getViewport().getViewPosition()
次のようなコードでビューポートを拡大すると、修正されたままになります
JScrollPane scrollPane = ...;
scrollPane.getViewport().getView().setPreferredSize(...);
scrollPane.getViewport().revalidate();
コンポーネントが「スクロール」しているように変化する場合があります。その場合は、ビューをscrollPane.getViewport().setViewPosition(...)
拡大した後にビューの位置を調整する必要があります..