0

ユーザーが通常どおりに編集できるようにしたいJTextPaneがありますが、ユーザーに文字の範囲を選択させたくありません。カーソルが欲しいだけです。どうすればいいですか?JTextPaneのsetSelectionStartとsetSelectionEndの使用は、ほとんどの場合機能しますが、常に機能するとは限りません。

boolean selectionAlreadyHandled = false;
JTextPane jtextpane;

public void caretUpdate (CaretEvent evt)
  {
  if (selectionAlreadyHandled)
    {
    selectionAlreadyHandled = false;
    return;
    }

  int pos = evt.getDot();
  if (pos != evt.getMark())
    {
    selectionAlreadyHandled = true;
    if (pos < evt.getMark())
      jtextpane.setSelectionEnd(pos);
    if (pos > evt.getMark())
      jtextpanel.setSelectionBegin(pos);
    }

  //Event handling
  return;
  }
4

1 に答える 1

1

これはおそらくそれを行う必要があります。そうでない場合、何かが起こるかどうかはわかりません


public class MyTextPane extends JTextPane {
  public void setSelectionStart(int spot) {
    super.setSelectionStart(spot);
    super.setSelectionEnd(spot);
  }

  public void setSelectionEnd(int spot) {
    super.setSelectionStart(spot);
    super.setSelectionEnd(spot);
  }

  public void select(int start, int end) {
    super.select(start, start);
  }
}
于 2012-04-30T19:05:16.127 に答える