Ctrl + c/x/v가있는 클립 보드를 사용하여 JTextArea에 연결하려면 Clipboard, StringSelection 및 DataFlavour 클래스를 사용해야합니다. 다음 코드 스 니펫을 고려하십시오.
@Override
public void lostOwnership(Clipboard clipboard, Transferable contents) {}
public void setClipboardContents(String str){
StringSelection stringSelection = new StringSelection(str);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(stringSelection, this);
}
public String getClipboardContents() {
String result = "";
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clipboard.getContents(null);
boolean hasTransferableText = (contents != null) && contents.isDataFlavorSupported(DataFlavor.stringFlavor);
if (hasTransferableText) {
try {
result = (String)contents.getTransferData(DataFlavor.stringFlavor);
}
catch (UnsupportedFlavorException e){
LOG.log(Level.SEVERE, e.getLocalizedMessage());
} catch(IOException e){
LOG.log(Level.SEVERE, e.getLocalizedMessage());
}
}
return result;
}
@Override
public void keyTyped(KeyEvent e) {}
@Override
public void keyPressed(KeyEvent e) {
if ((e.getKeyCode() == KeyEvent.VK_C) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) {
// your code here
}
if ((e.getKeyCode() == KeyEvent.VK_V) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) {
// your code here
}
if ((e.getKeyCode() == KeyEvent.VK_X) && ((e.getModifiers() & KeyEvent.CTRL_MASK) != 0)) {
// your code here
}
}
@Override
public void keyReleased(KeyEvent e) {}
물론 KeyListener 및 ClipboardOwner 인터페이스도 구현해야합니다.
사용자가 KeyListener와 함께 스윙 레이아웃을 사용하므로 사용자가 Ctrl + c/x/v 바로 가기를 사용하여 데이터를 복사/붙여 넣을 수 있습니다. 당신이 로봇 클래스를 사용하고자하는 경우
그러나, 이러한 링크 참조 :
http://www.java-tips.org/java-se-tips/java.awt/how-to-use-robot-class-in-java.html을
http://alvinalexander.com/java/java-robot-class-example-mouse-keystroke
'Ctrl 키 + C' 당신이 명령에 대해 얘기하는 경우가하는 생각하지 않습니다 line UI. 복사하는 대신 일반적으로 실행중인 프로그램/스레드에 인터럽트를 보내 완전히 중지시킵니다. – indivisible
해결했습니다. 분명히 ctrl + c는 작동하지만 복사 된 텍스트가 클립 보드에 표시되는 데는 시간이 걸립니다. 클립 보드에서 읽기 전에 1 초의 잠자기를 추가하여 문제가 해결되었습니다. – user3503734