2012-04-30 42 views
0

我有一个JTextPane,我希望用户能够正常编辑,但我不希望用户选择一系列字符;我只想要一个游标。我将如何做到这一点?使用JTextPane的setSelectionStart和setSelectionEnd大部分时间都可以使用,但并非总是如此。禁用在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); 
    } 
}