[RESOLVIDO]Editor de texto

Boa tarde a todos.

Estou trabalhando em um editor de texto ( JEditoPane ) e coloquei um menu popup ( o que esta na imagem em anexo )

mas não consigo implementar suas funcionalidades, se alguem puder me dar alguma dica.

Grato.

Para ler/gravar texto da Área de Transferência:
http://www.exampledepot.com/egs/java.awt.datatransfer/ToClip.html

Para manipular o texto via programação, faça o seguinte:

  • Em vez de um JEditorPane, use um JTextPane;
  • Use os métodos insertString() e remove() do objeto retornado por JTextPane.getStyledDocument().

Para selecionar tudo, use JTextPane.selectAll().

roger_rf vou ver o que consigo com o link que me passou.

Bem é praticamente impossivel mudar de JEditorPane para JTextPane.

Este editor ja tem quase 2 meses de trabalho investido, e N funções que eu não sei se rodariam no JTextPane.

Mais obrigado mesmo assim pela ajuda.

Deve ser quase impossível e também desnecessário mudar para o JTextPane.
O JEditorPane é mais poderoso. E tem todos os métodos que o roger citou acima.

Hum, depois do comentário do ViniGodoy vejo que JEditorPane oferece o método getDocument(), dá para chamar insertString() e remove() em cima do objeto retornado. E como JEditorPane também tem selectAll(), acho que o problema do Scorsatto está bem encaminhado, realmente não há necessidade de usar JTextPane. Vivendo e aprendendo :slight_smile:

O editorKit ja possui Actions para edição de texto, veja.

[code]public JPopupMenu getPopupMenu() {
if(popupMenu == null)
{
popupMenu = new JPopupMenu();

		popupMenu.add(getActions().get(StyledEditorKit.cutAction));
		popupMenu.add(getActions().get(StyledEditorKit.copyAction));
		popupMenu.add(getActions().get(StyledEditorKit.pasteAction));
		popupMenu.add(getActions().get(StyledEditorKit.selectAllAction));
	}
	return popupMenu;
}

public HashMap<Object, Action> getActions() {
	if(actions == null)
	{
		actions = new HashMap<Object, Action>();
		Action[] actionArray = getEditorKit().getActions();
		for(Action a:actionArray)
		actions.put(a.getValue(Action.NAME), a);				
	}
	return actions;
}[/code]

É só um exemplo… e pode funcionar tanto no JEditorPane quanto no JTextPane.
Caso queira mudar o nome do action é só fazer um novo action com o nome desejado.

Obrigado a TODOS!

segui o exemplo do roger_rf e com mais alguma ajuda dele via PM^^

esta tudo certo agora.

Grato.