답변:
이것은 저에게 효과적이며 매우 간단합니다.
다음을 가져옵니다.
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);
stringSelection
의 2 인자로 setContents(..)
, 너무 그것을 ClipboardOwner
링크 대답으로, 의미가없는 다음을보고 소스 의 유일한 방법 ClipboardOwner
이 구현, 즉 것으로 lostOwnership(..)
, 비어 있습니다. 따라서 두 번째 인수는 완전히 선택적 콜백 인 것 같습니다.
(-> (java.awt.Toolkit/getDefaultToolkit) .getSystemClipboard (.setContents (java.awt.datatransfer.StringSelection. "test") nil))
다음 클래스를 사용하면 클립 보드에서 문자열을 복사하거나 붙여 넣을 수 있습니다.
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();
}
}
OS X
제대로 작동하지 않는 경우에 더 나은
VK_CONTROL
위해 VK_META
이 맥 OS의 경우.
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
들어 자바 FX 기반 응용 프로그램.
//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, 일반 텍스트, 이미지)와 같은 여러 데이터 형식으로 여러 데이터를 저장할 수 있습니다.
자세한 내용은 공식 문서를 참조하십시오