2010-05-31 35 views
2

我有一個帶有SWT小部件的應用程序,比如org.eclipse.swt.widgets.Text,並且希望將一些控件添加到粘貼功能中。SWT小部件上的「粘貼」監聽器

這個想法是,如果用戶可以粘貼一串ID,我檢測到,運行一些代碼並粘貼對應於ID的對象。

因此,我正在尋找某種「ClipBoardListener」來添加到我的小部件,但似乎並不存在。一個keylistener只會捕獲通過鍵完成的粘貼,然後你將不得不處理不同的鍵組合以粘貼到不同的操作系統中。

基於this java 1.2 question我試着子類文本類並重寫inser的方法,但沒有工作

Exception in thread "main" org.eclipse.swt.SWTException: Subclassing not allowed 

似乎是一個醜陋的解決方案呢。

回答

1

有一個你可以聽的ModifyListener。它不會區分打字文本和粘貼文本,而是基於您想要做的事情,這可能也會起作用。

+0

謝謝,是的,這將工作,我認爲。 – Fredrik 2010-06-01 10:34:29

3

Fredrik,處理ModifyListner不會解決您的問題,因爲每次鍵入內容時都會調用它。因爲我相信你有興趣只處理「PASTE」事件。如在ModifyListner中,您不會知道是否由於某人實際輸入了數據或數據是通過「PASTE」事件(此粘貼可能是CTRL-V,上下文菜單「粘貼」操作或其他操作系統特定的鍵)而觸發了這種情況。