[RESOLVIDO]Editor de texto

6 respostas
Scorsatto

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.

6 Respostas

R

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().

Scorsatto

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.

ViniGodoy

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.

R

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:

Francisco_Silva
O editorKit ja possui Actions para edição de texto, veja.
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;
	}
É 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.
Scorsatto

Obrigado a TODOS!

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

esta tudo certo agora.

Grato.

Criado 24 de janeiro de 2011
Ultima resposta 25 de jan. de 2011
Respostas 6
Participantes 4