2011-09-16 76 views
-1

每當Ctrl + C被按下時,我想將剪貼板內容作爲元素添加到JList。基本上,我想要下面的代碼執行時Ctrl + C被按下。如何攔截剪貼板操作並將它們添加到JList?

我該怎麼做?

current=getClipboardContents(); 
model.addElement(current); 

current是在剪輯類StringmodelJList

+0

你爲什麼認爲這需要一個單獨的線程?如果它是一個Swing應用程序,爲什麼不讓Swing線程處理它? – duffymo

+0

Olease用你的queszion摘要替換「java help please」,比如「剪輯板訪問」或某些有意義的東西。 –

+0

您是否試圖不斷閱讀剪貼板並將其內容複製到您的應用程序中?在這種情況下,Ctrl + C意味着什麼?這是用於控制檯應用程序,而不是基於GUI的應用程序。 –

回答

1

你可能會使用Key Bindings這個默認的模式。

的擊鍵動作看起來是這樣的:

Transferable t = c.getContents(null); 

if (t.isDataFlavorSupported(DataFlavor.stringFlavor)) 
{ 
    Object o = t.getTransferData(DataFlavor.stringFlavor); 
    String data = (String)t.getTransferData(DataFlavor.stringFlavor); 
} 

是I M連續讀取系統剪貼板

不聽起來像是一個非常好的設計。在複製內容並將其添加到JList之前,如果剪貼板中的某些內容被替換,該怎麼辦?

無論如何,你已經被賦予了從剪貼板複製文本的代碼。我將使用Timer來安排輪詢,以便在EDT上完成對ListModel的更新。