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 回答