Descobrir onde está o cursor

4 respostas
JhowTroMundo

Olá.

Tenho 5 JTextArea na minha aplicação.

Criei um menu Editar e um menuitem Copiar. Como evento desse menuitem, obvio, quero que ele copie o texto selecionado, mas pra isso preciso saber em qual das 5 JTextArea está a seleção.

Já tentei algumas coisas que vi na net, como o getCariotPosition(), mas pareec que funciona apenas para uma JTextArea especifica (que é o que estou tentando descobrir).

Há alguma função pra isso?

Há outra forma de fazer isso?

Obrigado.

4 Respostas

T

é mais fácil você percorrer cada JTextArea e ver se alguma delas tem texto selecionado.
http://java.sun.com/javase/6/docs/api/javax/swing/text/JTextComponent.html#getSelectedText()

Marky.Vasconcelos

Voce pode ver primeiro qual jTextArea tem o focus depois pegar o texto selecionado.

hasFocus resolve isso.

Ou a solução do thingol.

JhowTroMundo

Mark_Ameba:
Voce pode ver primeiro qual jTextArea tem o focus depois pegar o texto selecionado.

hasFocus resolve isso.

Ou a solução do thingol.

Mark, foi uma ótima solução, mas não funcionou. Não entendi o porque, também. tentei usar isFocusOwner() e nada também.

também tentei

Component compFocusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();

Mas não retornou nada que eu entendesse.

Pensei no que o Thingol disse e realmente foi mais imples, apesar de eu achar mais feio =x

mas fazer o que né…

Ficou assim:

private void copiarSelecao(){
        
        AreaDeTransferencia clipboard = new AreaDeTransferencia();
        
        if(texto_twitter.getSelectedText() != null)
            clipboard.setClipboardContents(texto_twitter.getSelectedText());

        if(texto_blog.getSelectedText() != null)
            clipboard.setClipboardContents(texto_blog.getSelectedText());

        if(texto_noticia.getSelectedText() != null)
            clipboard.setClipboardContents(texto_noticia.getSelectedText());

        if(texto_noticia2.getSelectedText() != null)
            clipboard.setClipboardContents(texto_noticia2.getSelectedText());

        if(texto_destaque.getSelectedText() != null)
            clipboard.setClipboardContents(texto_destaque.getSelectedText());
    }

Obrigado.

Agora me resta descobrir como colar um texto em qualquer posição =x Alguma sugestão?

andre.santos

Use o método

insert(String <texto>, int <posição> );

Ele insere o texto que foi passado na posição definida no parâmetro.

[]'s

Criado 7 de janeiro de 2010
Ultima resposta 12 de jan. de 2010
Respostas 4
Participantes 4