import java.awt.AWTKeyStroke; //導入方法依賴的package包/類
/**
* initialize controls with modified key mappings
*/
private void initCtrls()
{
// K E Y S T R O K E -----------------------------------------------
AWTKeyStroke aksTab = AWTKeyStroke.getAWTKeyStroke
(
KeyEvent.VK_TAB
, 0
);
AWTKeyStroke aksShftTab = AWTKeyStroke.getAWTKeyStroke
(
KeyEvent.VK_TAB
, InputEvent.SHIFT_DOWN_MASK
);
AWTKeyStroke aksCtrlTab = AWTKeyStroke.getAWTKeyStroke
(
KeyEvent.VK_TAB
, InputEvent.CTRL_DOWN_MASK
);
AWTKeyStroke aksCtrlShftTab = AWTKeyStroke.getAWTKeyStroke
(
KeyEvent.VK_TAB
, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK
);
KeyStroke ksCtrlTab = KeyStroke.getKeyStroke
(
KeyEvent.VK_TAB
, InputEvent.CTRL_DOWN_MASK
);
// F O R W A R D T R A V E R S A L K E Y S ---------------------
Set ksSetFwd = new HashSet
(
this.getFocusTraversalKeys
(
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
)
);
ksSetFwd.remove(aksCtrlTab);
ksSetFwd.add(aksTab);
this.setFocusTraversalKeys
(
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
, ksSetFwd
);
// B A C K W A R D T R A V E R S A L K E Y S -------------------
Set ksSetBwd = new HashSet
(
this.getFocusTraversalKeys
(
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
)
);
ksSetBwd.remove(aksCtrlShftTab);
ksSetBwd.add(aksShftTab);
this.setFocusTraversalKeys
(
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
, ksSetBwd
);
// R E M A P I N S E R T T A B K E Y -------------------------
this.getInputMap().put(ksCtrlTab, "insert-tab");
}