2016-01-18 35 views
2

我通過clipboard.setContent(content)設置了剪貼板內容,它工作正常。 但是當程序通過System.exit(0)結束時,剪貼板內容被刪除。 當我通過點擊標題欄中的十字架來結束程序時,clippboard仍然被設置。 那麼有沒有辦法結束我的程序,它不會像System.exit(0)那樣刪除剪貼板呢?Javafx - 程序結束時刪除了剪貼板內容

謝謝:)

+0

你正在使用哪個操作系統?哪個Java版本? –

+0

Windows 8.1和Java版本8更新45 – Nik

回答

1

嘗試下面的代碼:

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

public class Main { 

    public static void main(String[] args) { 
     StringSelection selection = new StringSelection("sample"); 
     Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
     clipboard.setContents(selection, selection); 
     System.exit(0); 
    } 

} 

即使程序結束及其後的剪貼板正確填寫致電System.exit(0)

您提到要調用clipboard.setContent(content),但Clipboard類不提供這樣的方法。

我會仔細檢查你的代碼,並與上面的一個進行比較。同時檢查以正確調用正確的方法。


UPDATE
以前的答案是基於AWT/Swing應用程序的假設。但是,在對問題進行最新編輯之後,它似乎是一個JavaFX應用程序。

制定了以下建議:以Platform.exit()替換呼叫System.exit(0)

+0

存在.setContent()存在的ClipboardContent類。此解決方案對我無效,因爲在Javafx中使用awt似乎存在問題。 – Nik

+1

但是您只是將標題從Java更改爲JavaFX,這當然會改變上下文(以及可能的答案) –

+0

是的。對不起。我忘記更改此前 – Nik

1

也許你使用了本地剪貼板而不是系統剪貼板。 閱讀下面的例子:System Clipboard

順便說一句:我也使用Windows 8.1和Java 8版更新45

+0

我這樣做了:'最後剪貼板剪貼板= Clipboard.getSystemClipboard(); final ClipboardContent content = new ClipboardContent(); content.putString(「String here」); clipboard.setContent(content);' – Nik

+0

那應該是正確的方法。我看到你正在使用JavaFX的剪貼板? – Kami

+0

是的。是否有一個命令與標題欄中的十字相同?或者有任何替代System.exit(0)? – Nik