73 votes

Copie dans le presse-papiers en Java

Je veux définir le presse-papiers des utilisateurs sur une chaîne dans une application console Java. Des idées?

134voto

Carlos Heuberger Points 11804

L'utilisation de la Trousse d'outils pour obtenir le presse-papiers du Système.
Créer un StringSelection avec la chaîne et l'ajouter dans le presse-papiers.

Simplifié:

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

31voto

camickr Points 137095

Cela ne fonctionne pas.

Cela ne nous dit rien sur votre problème. Si vous écrivez du code et que vous pensez que cela ne fonctionne pas, publiez votre SSCCE qui démontre que cela ne fonctionne pas, car ce code fonctionne pour le reste d'entre nous.

Voici un SSCCE simple pour référence future:

 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 Points 1709

Si vous êtes sous Linux et utilisez OpenJDK, cela ne fonctionnera pas. Vous devez utiliser le Sun JDK sous linux pour qu'il fonctionne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X