Re: Showing text cursor in JTextPane



Jim Rootham wrote:
Jim Rootham wrote:
IchBin wrote:

Jim Rootham wrote:

IchBin wrote:

Jim Rootham wrote:

What has to be true for a text cursor to show in a JTextPane?

I have a dynamic set of JTextPanes that may or may not have focus. Sometimes when they have focus the text cursor does not display. What do I need to do to force it to display?

Thanks

Jim Rootham

Do you have text in JTextPanes?

Could the cursor be sitting at the end of the text in the JTextPanes?

If you mean by dynamic that you insert the text then maybe the cursor is at the end of the inserted text. This would not be visible.

Override DefaultCaret.adjustVisibility() to do nothing.

or

set caret position: setCaretPosition(int position)


Sometimes there is text there, sometimes not. The cursor will show at the end of text. I do want the caret not to show if the JTextPane does not have focus.

I can't find setCaretPosition as part of JTextPane.

I am calling setSelectionStart and setSelectionEnd when the JTextPane gets the focus. I am calling KeyboardFocusManager.clearGlobalFocusOwner to remove the text cursor after I disable editing when another part of the panel is sits on is clicked.

Jim Rootham



You will not find setCaretPosition under JTextPane because it is inherited from JTextComponent.

setCaretPosition

public void setCaretPosition(int position)

Sets the position of the text insertion caret for the TextComponent. Note that the caret tracks change, so this may move if the underlying text of the component is changed. If the document is null, does nothing. The position must be between 0 and the length of the component's text or else an exception is thrown.

Parameters:
position - the position
Throws:
IllegalArgumentException - if the value supplied for position is less than zero or greater than the component's text length


Thanks for the pointer, unfortunately it didn't work.

Would a more careful listing of when the cursor appears and does not appear help?

Jim Rootham

OK, I found it. Looking at the adjustVisibility documentation gave me the clue. You have to call setEditable(true) before the focus gets to the JtextPane. In this case it means calling setEditable from MousePressed as opposed to MouseClicked.

Jim

Cool...

--

Thanks in Advance...
IchBin, Pocono Lake, Pa, USA http://weconsultants.phpnet.us
__________________________________________________________________________

'If there is one, Knowledge is the "Fountain of Youth"'
-William E. Taylor, Regular Guy (1952-)
.



Relevant Pages

  • Re: Showing text cursor in JTextPane
    ... Sometimes when they have focus the text cursor does not display. ... Could the cursor be sitting at the end of the text in the JTextPanes? ... I do want the caret not to show if the JTextPane does not have focus. ...
    (comp.lang.java.gui)
  • Re: Showing text cursor in JTextPane
    ... Jim Rootham wrote: ... Could the cursor be sitting at the end of the text in the JTextPanes? ... I do want the caret not to show if the JTextPane does not have focus. ...
    (comp.lang.java.gui)
  • Re: Showing text cursor in JTextPane
    ... Jim Rootham wrote: ... Could the cursor be sitting at the end of the text in the JTextPanes? ... I do want the caret not to show if the JTextPane does not have focus. ...
    (comp.lang.java.gui)
  • CaretPosition problem
    ... I want to set the CaretPosition right where the component (JButton) is ... in a JTextPane. ... I want the cursor to move to this position. ...
    (comp.lang.java.programmer)
  • Re: caret on not editable JTextPane
    ... > I have a JTextPane which works fine. ... the caret is not visible. ... public class CaretInText extends JPanel { ...
    (comp.lang.java.programmer)