2013-12-10 2 views
2

javafx 응용 프로그램에서 작업 중입니다. 컨텍스트 메뉴를 사용하여 응용 프로그램에서 이미지를 복사하고 붙여 넣기의 창 기능을 사용하여 붙여 넣으려고합니다.javafx applicaion에서 이미지 복사하고 창 기능을 사용하여 붙여 넣기

File file = new File("C:\\Users\\Admin\\Desktop\\my\\mysql.gif"); 
    Image image = new Image(file.toURI().toString()); 
    ImageView ive =new ImageView(image); 
    cm = new ContextMenu(); 
MenuItem copy = new MenuItem("Copy"); 
cm.getItems().add(copy); 
copy.setOnAction(new EventHandler<ActionEvent>() { 

     @Override 
     public void handle(ActionEvent t) { 
      //Paste Image at location 
      Clipboard clipboard = Clipboard.getSystemClipboard(); 
      ClipboardContent content = new ClipboardContent(); 
      content.putImage(image); // the image you want, as javafx.scene.image.Image 
      clipboard.setContent(content); 
     } 
    }); 

예 : 아래 그림과 같습니다.

Copy Image From aaplication

그리고 창의 사용하는 위치에 붙여 넣을 메뉴를 제공합니다.

Paste Image at spectific location

답변

4

ClipboardClipboardContent, 예를 들어, 사용 같이 작업 윈도우 컨텍스트 메뉴의 "붙여 넣기"동작을 위해

Clipboard clipboard = Clipboard.getSystemClipboard(); 
ClipboardContent content = new ClipboardContent(); 
// for paste as image, e.g. in GIMP 
content.putImage(image); // the image you want, as javafx.scene.image.Image 
// for paste as file, e.g. in Windows Explorer 
content.putFiles(java.util.Collections.singletonList(new File("C:\\Users\\Admin\\Desktop\\my\\mysql.gif"))); 
clipboard.setContent(content); 

, 클립 보드의 콘텐츠는 File 수 있습니다. 위에 설명 된 경우이 방법은 쉽지만 그렇지 않으면 임시 파일을 만들어야합니다.

+0

나는 그것을 시도했지만 작동하지 않습니다. 나는 위의 질문을 편집합니다. 확인해 봐. 붙여 넣기 옵션은 제공되지 않습니다 –

+0

이 경우 클립 보드에 파일을 넣기 만하면됩니다. 편집을 참조하십시오. –

+0

감사합니다 .... 그 작업 :-) –

관련 문제