警告:これをクローズするのは間違っていました。適切な回答が得られるように、再開するために投票してください!
テキスト領域ですべてのテキストを選択 (Ctrl+A) するたびに、一番下までスクロールします。
すべてのコンテンツを選択しながら、位置または目に見える長方形を維持する方法はありますか?
アップデート
これはJava / Swingの複製ではありません: JScrollPane の JTextArea、自動スクロールを防ぐ方法は? ここでは、テキストエリア内のテキストは更新されず、単に選択されている (つまり、すべて選択されている) ためです。
クレオパトラをアップデート
(正確にはネチケットまでではありませんが、できるだけ早く回答が必要だと思います-質問が再開されるまでここに追加してから移動します:-)
基本的に必要なのはカスタム キャレットですが、NavigationFilters が邪魔になる (または邪魔しない) ため、それが全体の話かどうかはわかりません。そのキャレットで、adjustVisibilty をオーバーライドして、条件付きでスクロールするか、新しいドットにスクロールしないようにします。サンプル:
public static class MyCaret extends DefaultCaret {
@Override
protected void adjustVisibility(Rectangle nloc) {
if (ignoreAdjustVisibility()) {
return;
}
super.adjustVisibility(nloc);
}
/**
* Returns a boolean to indicate whether to scroll the dot to visible.
* This implementation checks for all-selected, that is mark at the start
* and dot at the end.
* @return
*/
private boolean ignoreAdjustVisibility() {
return (getMark() == 0) &&
(getDot() == getComponent().getDocument().getLength());
}
}
// use in application code
JTextArea text = new JTextArea(10, 20);
DefaultCaret caret = (DefaultCaret) text.getCaret();
MyCaret myCaret = new MyCaret();
// for some reason, the blinkrate isn't installed correctly, so do it manually
myCaret.setBlinkRate(caret.getBlinkRate());
text.setCaret(myCaret);
アップデート
ありがとうクレオパトラ。あなたはソリューション作品です。この質問が再開されることを願っています。