2012-04-30 48 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); 
    } 
}