Comandos colar, copiar, recortar....[Resolvido]

Estou precisando fazer os comandos de copiar, colar, recortar, selecionar tudo, desfazer e refazer…
Eu sei q tem teclas de atalho para isso…mas eu qero fazer um menu com essas opções…
desde jah agradeço!

Toolkit.getDefaultToolkit().getSystemClipboard();

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/datatransfer/Clipboard.html

E para o selecionar tudo voce pode ver o objeto que tem o foco e chamar o método selectAll se ele for um JTextComponent.

aew…o selecionar tudo deu certo…
mas eu nao entendi o toolkit ae…
ele serve pra q?

?

import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;

public class ClipboardTest {
	public static void main(String[] args) {
		Clipboard board = Toolkit.getDefaultToolkit().getSystemClipboard();
		ClipboardOwner selection = new StringSelection("xxxxx");
		board.setContents((Transferable) selection, selection);
	}
}

Ctrl+V depois de rodar isso para ver o que tem no seu clipboard.

Sei que voce usa o método getContents do Clipboard para pegar o que esta no Ctrl+C mas não achei como o.0

como eu faço pra deletar o texto q está selecionado?

Acho que voce precisa dar um replca na string do componente e coloca-la alterada devolta no componente.

mas se eu der um replace nao vai dar certo…pq se no texto tiver mais q 1 palavra “cor”(por exemplo) e eu der um replace ele vai mudar todas as paravras “cor”…e eu qero q ele apague soh a selecionada…rsrs
sera q tem outro jeito?

		String text = field.getText();
		StringBuilder builder = new StringBuilder(text);
		builder.replace(field.getSelectionStart(), field.getSelectionEnd(), "");
		field.setText(text);

aewww
deu certooo
soh q eu tive q fazer uma mudança…

String texto = textarea.getText(); StringBuilder build = new StringBuilder(texto); texto = ""+build.replace(ta.getSelectionStart(), ta.getSelectionEnd(), ""); ta.setText(texto);

assim deu certo!! hehe

Vlw pela ajuda!

Só faltou isso.

		String text = field.getText();
		StringBuilder builder = new StringBuilder(text);
		builder.replace(field.getSelectionStart(), field.getSelectionEnd(), "");
		field.setText(builder.toString());

aew agora sim hehe…
vlw!!!

E como eu faço os comandos desfazer e refazer?

Ja vi em um topico antigo… se não me engano é algo sobre o UndoManager. Se eu achar algo eu te falo.

ok…vou dar uma pesquisada!
Qualqer coisa eu posto aki

To sem tempo ams achei esse link.
http://www.java2s.com/Code/Java/Swing-JFC/TheuseofUndoManager.htm

eu tinha visto esse jah…mas nao consiguii…:S
sera q tem um exemplo com menus?

consegui achar os codigos…eh bem simples:

colar: textarea.copy();
copiar: textarea.copy();
recortar: textarea.cut();

ja o refazer e desfazer esta nesse link:

http://www.arquivodecodigos.net/dicas/java-como-adicionar-capacidades-de-refazer-e-desfazer-a-um-jtextarea-505.html

abraços!

Nunca reparei nesses métodos.
Ainda bem que solucionou.

Ué onde eu errei?

Comando Copiar:

if (tf_funcionario.isFocusable()){ tf_funcionario.copy(); }else{ if (tf_registroGeral.isFocusable()){ tf_registroGeral.copy(); }else{ if(tf_orgaoEmissor.isFocusable()){ tf_orgaoEmissor.copy(); }else{ if(tf_nomeExibicao.isFocusable()){ tf_nomeExibicao.copy(); } } } }

Comando Recortar:

if (tf_funcionario.isFocusable()){ tf_funcionario.cut(); }else{ if (tf_registroGeral.isFocusable()){ tf_registroGeral.cut(); }else{ if(tf_orgaoEmissor.isFocusable()){ tf_orgaoEmissor.cut(); }else{ if(tf_nomeExibicao.isFocusable()){ tf_nomeExibicao.cut(); } } } }

Comando Colar:

if (tf_funcionario.isFocusable()){ tf_funcionario.paste(); }else{ if (tf_registroGeral.isFocusable()){ tf_registroGeral.paste(); }else{ if(tf_orgaoEmissor.isFocusable()){ tf_orgaoEmissor.paste(); }else{ if(tf_nomeExibicao.isFocusable()){ tf_nomeExibicao.paste(); } } } }

cara, basta usar os metodos pre-criados do java como por exemplo, para fazer a copia, vc pode usar o Jtextarea.Copy(); , recortar o Jtextarea.cut(); colar o Jtextarea.paste();