如何防止多行文本字段「偷」製表鍵?我想使用TAB在窗口的元素之間循環,但是當我輸入多行文本時,TAB變成了「普通」鍵,並且只是將製表符插入我輸入的文本中。在swt中使用多行文本中的Tab鍵?
我該如何處理?我應該編寫一些自定義偵聽器,還是可以使用SWT常量更改組件的行爲?
如何防止多行文本字段「偷」製表鍵?我想使用TAB在窗口的元素之間循環,但是當我輸入多行文本時,TAB變成了「普通」鍵,並且只是將製表符插入我輸入的文本中。在swt中使用多行文本中的Tab鍵?
我該如何處理?我應該編寫一些自定義偵聽器,還是可以使用SWT常量更改組件的行爲?
SWT定義了一種使用TraverseListener類實現這種行爲的機制。以下片段(取自here)顯示瞭如何:
Text text1 = new Text(shell, SWT.MULTI | SWT.WRAP);
text1.setBounds(10,10,150,50);
text1.setText("Tab will traverse out from here.");
text1.addTraverseListener(new TraverseListener() {
public void keyTraversed(TraverseEvent e) {
if (e.detail == SWT.TRAVERSE_TAB_NEXT || e.detail == SWT.TRAVERSE_TAB_PREVIOUS) {
e.doit = true;
}
}
});
向textfield或textarea添加擊鍵監聽程序,併爲TAB實施特殊處理程序。我在Swing應用程序上也看到了這個「標籤捕獲」,通常很煩人。
你可以提供另一個處理程序移 - TAB然後將插入一個\t
,如果你仍然要允許在文本框選項卡。
它的工作,非常感謝。 – 2010-01-29 12:37:51