JAVA.SWT/JFace: 按鍵與其對應的常量表、KeyEvent事件比較、VerifyEvent事件比較
2010年07月27日 星期二 22:19
《Eclipse SWT/JFACE 核心應用》清華大學出版社 8.3.2 鍵盤事件的各種屬性
按鍵與其對應的常量表:
| 按鍵 |
keyCode常量 |
| 方向鍵下 |
SWT.ARROW_DOWN |
| 方向鍵上 |
SWT.ARROW_UP |
| 方向鍵左 |
SWT.ARROW_LEFT |
| 方向鍵右 |
SWT.ARROW_RIGHT |
| Alt鍵 |
SWT.ALT |
| 空格鍵 |
SWT.BS |
| Enter鍵 |
SWT.CR |
| Ctrl鍵 |
SWT.CTRL |
| End鍵 |
SWT.END |
| Esc鍵 |
SWT.ESC |
| F1~F12鍵 |
SWT.F1~SWT.F12 |
| Home鍵 |
SWT.HOME |
| Insert鍵 |
SWT.INSERT |
| Page Down下翻頁鍵 |
SWT.PAGE_DOWN |
| Page Up上翻頁鍵 |
SWT.PAGE_UP |
| Shift鍵 |
SWT.SHIFT |
| Tab鍵 |
SWT.TAB |
| 換行鍵 |
SWT.LF |
KeyEvent事件比較:
| 示例描述 |
各屬性的值 |
說明 |
| 按下A鍵 |
character='a' keyCode=97 stateMask=0 |
97表示鍵盤上的a鍵。當要輸入大寫字母A時,需要使用Shift鍵,所以這時stateMask的值為SWT.SHIFT |
| 按下A鍵同時按下Shift鍵 |
character='A' keyCode=97 stateMask=SWT.SHIFT |
|
| 按下F1鍵 |
character='\0' keyCode=SWT.F1 stateMask=0 |
F1鍵不表示任何字符,所以character為\0 |
| 按下F1鍵同時按下Ctrl鍵 |
character='\0' keyCode=SWT.F1 stateMask=SWT.CTRL |
同時按下了輔助鍵,所以stateMask值為SWT.CTRL |
《Eclipse SWT/JFACE 核心應用》清華大學出版社 8.5.3 文本修改事件:VerifyEvent的各種屬性
VerifyEvent事件比較:
| 文本框的初始值 |
示例描述 |
改變字符后文本框的值 |
各屬性的值 |
說明 |
| "abcd" |
字符后輸入字符e |
"abcde" |
character='e' keyCode=101 stateMask=0 doit=true start=4 end=4 text=e |
插入字符時start 和 end的值相等,記錄的都是插入字符所在的位置 |
| "abcd" |
從剪貼板中粘貼"abcd" |
"abcdabcd" |
character='\0' keyCode=0 stateMask=0 doit=true start=4 end=4 text=abcd |
|
| "abcd" |
刪除字符c |
"abd" |
character=' ' keyCode=8 stateMask=0 doit=true start=2 end=3 text= |
刪除字符時,text的值為空,start記錄了刪除字符的起始位置,end記錄了刪除字符的結束位置 |
| "abcd" |
選擇cd字符后按Delete鍵 |
"ab" |
character=' ' keyCode=8 stateMask=0 doit=true start=2 end=4 text= |
| SWT類所代表的事件常量:
|
SWT常見的事件
| 事件類型 |
監聽器和適配器 |
監聽器中的方法 |
說明 |
可注冊的GUI控件 |
| ArmEvent |
ArmListener |
widgetArmed() |
菜單項被選中之前觸發此事件 |
MenuItem |
| ControlEvent |
ControlListener |
controlMoved() |
控件的位置改變時 |
Control,TableColumn, Tracker |
| controlResized() |
控件的大小改變時 |
|||
| DisposeEvent |
DisposeListener |
widgetDisposed() |
控件釋放時 |
Widget |
| FocusEvent |
FocusListener |
focusGained() |
控件獲得焦點時 |
Control |
| focusLost() |
控件失去焦點時 |
|||
| HelpEvent |
HelpListener |
helpRequested() |
按F1鍵獲得幫助時觸發該事件 |
Control, Menu, MenuItem |
| KeyEvent |
KeyListener |
keyPressed() |
按鍵按下時 |
Control |
| keyReleased() |
按鍵釋放時 |
|||
| MenuEvent |
MenuListener |
menuHidder() |
顯示菜單時 |
Menu |
| menuShown() |
隱藏菜單時 |
|||
| ModifyEvent |
ModifyListener |
modifyText() |
文本被修改時 |
Ccombo, Combo, Text, StyledText |
| MouseEvent |
MouseListener |
mouseDoubleClick() |
鼠標雙擊時 |
Control |
| mouseDown() |
鼠標按下時 |
|||
| mouseUp() |
鼠標抬起時 |
|||
| MouseMoveEvent |
MouseMoveListener |
mouseMove() |
鼠標移動時 |
Control |
| MouseTrackEvent |
MouseTrackListener |
mouseEnter() |
鼠標進入控件區域時 |
Control |
| mouseExit() |
鼠標離開控件區域時 |
|||
| mouseHover() |
鼠標在該控件區域時 |
|||
| PaintEvent |
PaintListener |
paintControl() |
繪制控件時 |
Control |
| SelectionEvent |
SelectionListener |
widgetSelected() |
選中控件時,事件的發生根據不同的系統而異 |
Button, CCombo, Combo, CoolItem, CTabFolder, List, MenuItem, Sash, Scale, ScrollBar, Slider, StyledText, TabFolder, Table, TableCursor, TableColumn, TableTree, Text, TreeToolItem |
| widgetDefaultSelected() |
默認選中控件時,事件的發生根據不同的系統而異 |
|||
| ShellEvent |
ShellListener |
shellActivated() |
窗口被激活時 |
Shell |
| shellClosed() |
窗口關閉時 |
|||
| shellDeactivated() |
窗口變為非激活狀態時 |
|||
| shellDeiconified() |
當窗口不是最小化時 |
|||
| shellIconified() |
當窗口最小化時 |
|||
| TraverseEvent |
TraverseListener |
keyTraversed() |
按下Tab鍵切換時 |
Control |
| TreeEvent |
TreeListener |
treeCollapsed() |
折疊樹節點時 |
Tree, TableTree |
| treeExpanded() |
展開樹節點時 |
|||
| VerifyEvent |
VerifyListener |
verifyText() |
改變文本時觸發該事件 |
Text, StyledText |
