IT story

Java를 사용하여 텍스트를 클립 보드에 복사

hot-time 2020. 7. 14. 07:59
반응형

Java를 사용하여 텍스트를 클립 보드에 복사


JTable의 셀에서 클립 보드로 텍스트를 복사 하여 Microsoft Word와 같은 다른 프로그램에 붙여 넣을 수 있습니다. 의 텍스트가 JTable있지만 클립 보드에 복사하는 방법을 잘 모르겠습니다.


이것은 저에게 효과적이며 매우 간단합니다.

다음을 가져옵니다.

import java.awt.datatransfer.StringSelection;
import java.awt.Toolkit;

그런 다음 클립 보드를 변경하려는 위치 에이 코드 스 니펫을 넣으십시오.

String myString = "This text will be copied into clipboard";
StringSelection stringSelection = new StringSelection(myString);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, null);

다음 클래스를 사용하면 클립 보드에서 문자열을 복사하거나 붙여 넣을 수 있습니다.

import java.awt.AWTException;
import java.awt.HeadlessException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.KeyEvent;
import java.io.IOException;

public class SystemClipboard
{
    public static void copy(String text)
    {
        Clipboard clipboard = getSystemClipboard();

        clipboard.setContents(new StringSelection(text), null);
    }

    public static void paste() throws AWTException
    {
        Robot robot = new Robot();

        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_V);
    }

    public static String get() throws Exception
    {
        Clipboard systemClipboard = getSystemClipboard();
        DataFlavor dataFlavor = DataFlavor.stringFlavor;

        if (systemClipboard.isDataFlavorAvailable(dataFlavor))
        {
            Object text = systemClipboard.getData(dataFlavor);
            return (String) text;
        }

        return null;
    }

    private static Clipboard getSystemClipboard()
    {
        Toolkit defaultToolkit = Toolkit.getDefaultToolkit();
        Clipboard systemClipboard = defaultToolkit.getSystemClipboard();

        return systemClipboard;
    }
}

이것은 장식적인 방식으로 작성된 승인 된 답변입니다.

Toolkit.getDefaultToolkit()
        .getSystemClipboard()
        .setContents(
                new StringSelection(txtMySQLScript.getText()),
                null
        );

txtbox에서 입력을 얻거나 해당 텍스트 상자에 무언가를 생성하고 버튼을 클릭하여 수행 할 수 있도록 더 좋은 방법을 찾았습니다. 다음은 작동하는 클립 보드에 복사하는 코드입니다 (2017/2018)!

import java.awt.datatransfer.*;
import java.awt.Toolkit;

private void /* Action performed when the copy to clipboard button is clicked */ {
    String ctc = txtCommand.getText().toString();
    StringSelection stringSelection = new StringSelection(ctc);
    Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
    clpbrd.setContents(stringSelection, null);
}

// txtCommand is the variable of a text box

참고URL : https://stackoverflow.com/questions/6710350/copying-text-to-the-clipboard-using-java

반응형