2012-04-30 6 views
0

У меня есть JTextPane, что я хочу, чтобы пользователь мог нормально редактировать, но я не хочу, чтобы пользователь выбирал диапазон символов; Я просто хочу курсор. Как мне это сделать? Использование setSelectionStart и setSelectionEnd JTextPane работает большую часть времени, но не всегда.Отключить выбор диапазона в JTextPane

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

Вы можете оставить свой код того, что вы пробовали? – ControlAltDel

ответ

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); 
    } 
} 
Смежные вопросы