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