72 votos

Copiar al Portapapeles en Java

Quiero fijar los usuarios del portapapeles a una cadena en una Aplicación de Consola Java. Alguna idea?

133voto

Carlos Heuberger Puntos 11804

Utilizar el kit de herramientas para obtener el Portapapeles del Sistema.
Crear un StringSelection con la cadena y agregar en el Portapapeles.

Simplificado:

    StringSelection selection = new StringSelection(theString);
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    clipboard.setContents(selection, selection);

31voto

camickr Puntos 137095

Esto no funciona.

Que no nos dice nada acerca de su problema. Si escribe el código y crees que no funciona, a continuación, publicar su SSCCE que demuestra es que no funciona, debido a que el código funciona para el resto de nosotros.

Aquí es un simple SSCCE para referencia futura:

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;

class ClipboardTest
{
    public static void main(String[] args)
        throws UnsupportedFlavorException, IOException
    {
        Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard();
        StringSelection testData;

        //  Add some test data

        if (args.length > 0)
            testData = new StringSelection( args[0] );
        else
            testData = new StringSelection( "Test Data" );

        c.setContents(testData, testData);

        //  Get clipboard contents, as a String

        Transferable t = c.getContents( null );

        if ( t.isDataFlavorSupported(DataFlavor.stringFlavor) )
        {
            Object o = t.getTransferData( DataFlavor.stringFlavor );
            String data = (String)t.getTransferData( DataFlavor.stringFlavor );
            System.out.println( "Clipboard contents: " + data );
        }

        System.exit(0);
    }
}

5voto

rado Puntos 1709

Si estás en linux y el uso de OpenJDK no va a funcionar. Debe utilizar el Sun JDK en linux para que funcione.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X