programing

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

goodcopy 2022. 7. 31. 22:08
반응형

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

에서 텍스트를 복사하고 싶다.JTable의 셀을 클립보드에 붙여 Microsoft Word 등의 다른 프로그램에 붙여넣을 수 있습니다.제가 본문입니다.JTable클립보드에 복사하는 방법을 잘 모르겠습니다.

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

Import 대상:

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

그런 다음 클립보드를 변경하고 싶은 곳에 코드 조각을 넣습니다.

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

이것은 장식적인 방법으로 쓰여진 인정된 답변입니다.

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

다음 클래스에서는 클립보드에서 문자열을 복사/붙일 수 있습니다.

import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;

import static java.awt.event.KeyEvent.*;
import static org.apache.commons.lang3.SystemUtils.IS_OS_MAC;

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

        int controlKey = IS_OS_MAC ? VK_META : VK_CONTROL;
        robot.keyPress(controlKey);
        robot.keyPress(VK_V);
        robot.keyRelease(controlKey);
        robot.keyRelease(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();
        return defaultToolkit.getSystemClipboard();
    }
}

JavaFx 기반 응용 프로그램의 경우.

        //returns System Clipboard
        final Clipboard clipboard = Clipboard.getSystemClipboard();
        // ClipboardContent provides flexibility to store data in different formats
        final ClipboardContent content = new ClipboardContent();
        content.putString("Some text");
        content.putHtml("<b>Some</b> text");
        //this will be replaced by previous putString
        content.putString("Some different text");
        //set the content to clipboard
        clipboard.setContent(content);
       // validate before retrieving it
        if(clipboard.hasContent(DataFormat.HTML)){
            System.out.println(clipboard.getHtml());
        }
        if(clipboard.hasString()){
            System.out.println(clipboard.getString());
        }

ClipboardContent는 여러 데이터를 (html,url,plain text,image)와 같은 여러 데이터 형식으로 저장할 수 있습니다.

자세한 내용은 공식 문서를 참조하십시오.

txtbox에서 입력을 받거나 텍스트 상자에 무언가를 생성하고 버튼을 클릭할 수 있는 더 좋은 방법을 찾았습니다.

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

참조용:

static void copyToClipboard(String text) {
    java.awt.Toolkit.getDefaultToolkit().getSystemClipboard()
        .setContents(new java.awt.datatransfer.StringSelection(text), null);
}

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

반응형