Копирование в буфер обмена в Java - программирование
Подтвердить что ты не робот

Копирование в буфер обмена в Java

Я хочу настроить буфер обмена пользователей на строку в приложении консоли Java. Любые идеи?

4b9b3361

Ответ 1

Используйте Toolkit для получить системный буфер обмена.
Создайте StringSelection с помощью строки и добавьте ее в буфер обмена.

Упрощенный:

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

Ответ 2

Вот простой SSCCE, чтобы выполнить это:

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);
    }
}

Ответ 3

Если вы используете Linux и используете OpenJDK, это не сработает. Вы должны использовать Sun JDK для Linux для работы.

Ответ 4

в linux с xclip

Runtime run = Runtime.getRuntime();
Process p = null;
String str = "hello";
try {
        p = run.exec(new String[]{"sh", "-c", "echo " + str + " | xclip -selection clipboard"});
    } catch (Exception e) {
        System.out.println(e);
    }

Ответ 5

Эта работа как чемпион;

   String get= text.getText();
   StringSelection selec= new StringSelection(get);
   Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
   clipboard.setContents(selec, selec);