[NetBeans] Problema usando la librería DefaultEditorKit

Iniciado por ~ Yoya ~, 7 Marzo 2011, 21:28 PM

0 Miembros y 1 Visitante están viendo este tema.

~ Yoya ~

Buenas, soy algo nuevo en java xD. Estoy intentando hacer algo estilo copy, cut y paste, utilizando JMenuItem. El problema es que no eh encontrado la forma de hacerlo, he visto unos ejemplos pero en este caso no me funcionaria.

Aquí el código mas importante:
Código (java) [Seleccionar]
import javax.swing.text.DefaultEditorKit;

public class EjGui extends javax.swing.JFrame {

private void initComponents() {
        jMenuItem4 = new javax.swing.JMenuItem();

        jMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem4.setText("Copiar");
        jMenuItem4.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jMenuItem4MouseClicked(evt);
            }
        });
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                copiar(evt);
            }
        });

    private void copiar(java.awt.event.ActionEvent evt) {                       
        // TODO add your handling code here:


    }                       

    private void jMenuItem4MouseClicked(java.awt.event.MouseEvent evt) {                                       
        // TODO add your handling code here:
    }                                       

    private javax.swing.JMenuItem jMenuItem4;


Intente hacer un:
Código (java) [Seleccionar]
jMenuItem4.setAction(new DefaultEditorKit.CopyAction());
Dentro del método copiar y nada.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

1mpuls0

A qué te refieres con "este caso no me funcionaría"?

De donde quieres copiar?, de un componente que guarde texto en tu aplicación?, o del portapapeles del SO?.
abc

~ Yoya ~

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

1mpuls0

#3
Aquí un ejemplo:

Código (java) [Seleccionar]

import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.Toolkit;
import java.io.*;

public class CopiarPortapapeles implements ClipboardOwner {

public static void main(String args[]) {
new CopiarPortapapeles();
}

   public CopiarPortapapeles() {
    System.out.println("CONTENIDO DEL PORTAPAPELES:\n" + obtenerContenidoPortapapeles() );
   }
   
   public void lostOwnership( Clipboard aClipboard, Transferable aContents) {
   }

public String obtenerContenidoPortapapeles() {
   String resultado = "";
   
   Clipboard portapapeles = Toolkit.getDefaultToolkit().getSystemClipboard();
   
   Transferable contenido = portapapeles.getContents(null);
   
   boolean existeTexto = (contenido != null) && contenido.isDataFlavorSupported(DataFlavor.stringFlavor);
   if( existeTexto ) {
     try {
       resultado = (String)contenido.getTransferData(DataFlavor.stringFlavor);
     }
     catch (UnsupportedFlavorException ex){
       System.out.println(ex);
       ex.printStackTrace();
     }
     catch (IOException ex) {
       System.out.println(ex);
       ex.printStackTrace();
     }
   }
   else{
    resultado="NO HAY TEXTO EN EL PORTAPAPELES";
   }
   
   return resultado;
 }

}


EDITO: Es sin utilizar la librería que mencionas.

Saludos.
abc

~ Yoya ~

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.