【问题标题】:Disable selecting a range in JTextPane禁用在 JTextPane 中选择范围
【发布时间】:2017-12-18 20:31:03
【问题描述】:

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

【问题讨论】:

  • 您可以发布您尝试过的代码吗?

标签: java swing selection jtextpane


【解决方案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);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多