禁用在JTextPane中选择范围

时间:2012-04-30 18:56:51

标签: java swing selection jtextpane

我有一个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;
  }

1 个答案:

答案 0 :(得分: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);
  }
}