下面列出了java.awt.KeyboardFocusManager#addKeyEventDispatcher ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static synchronized void install() {
if(installed) {
return;
}
ShortcutAndMenuKeyEventProcessor instance = getDefault();
KeyboardFocusManager keyboardFocusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
keyboardFocusManager.addKeyEventDispatcher(instance);
keyboardFocusManager.addKeyEventPostProcessor(instance);
// #63252: Disable focus traversal functionality of Ctrl+Tab and Ctrl+Shift+Tab,
// to allow our own document switching (RecentViewListAction)
defaultForward = keyboardFocusManager.getDefaultFocusTraversalKeys(
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS);
defaultBackward = keyboardFocusManager.getDefaultFocusTraversalKeys(
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS);
keyboardFocusManager.setDefaultFocusTraversalKeys(
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
Collections.singleton(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_TAB, 0))
);
keyboardFocusManager.setDefaultFocusTraversalKeys(
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
Collections.singleton(AWTKeyStroke.getAWTKeyStroke(KeyEvent.VK_TAB, KeyEvent.SHIFT_DOWN_MASK))
);
}
/**
* Creates new form SwingMain
*/
public SwingMain() {
this.chip8Runner = new Thread(() -> {
while (true) {
try {
if (running) {
if (pause == false || step) {
step = false;
chip8.cycle();
((Chip8Model) jTable1.getModel()).update(chip8);
}
outputPanel.repaint();
}
sleep(1);
} catch (InterruptedException ex) {
Logger.getLogger(SwingMain.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
initComponents();
KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
switch (e.getID()) {
case KeyEvent.KEY_PRESSED:
Input.press(e.getKeyChar() + "");
break;
case KeyEvent.KEY_RELEASED:
Input.unpress();
break;
default:
break;
}
return false;
}
});
}
public void createController() {
controller = new MegaMekController();
KeyboardFocusManager kbfm = KeyboardFocusManager
.getCurrentKeyboardFocusManager();
kbfm.addKeyEventDispatcher(controller);
KeyBindParser.parseKeyBindings(controller);
}
public SwingDemo(boolean singleFrame) {
JFrame frame = new JFrame("SwingDemo");
frame.setSize(900, 700);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.addKeyEventDispatcher(new KeyDispatcher());
if (singleFrame) {
frame.setContentPane(createVncView());
frame.setBackground(Color.GRAY);
frame.setVisible(true);
return;
}
JDesktopPane pane = new JDesktopPane();
frame.setContentPane(pane);
iframe = new JInternalFrame("VNC", true, true, true, true);
iframe.setSize(850, 650);
iframe.setOpaque(false);
iframe.addInternalFrameListener(this);
iframe.setContentPane(createVncView());
pane.add(iframe);
frame.setVisible(true);
iframe.setVisible(true);
}
JSettlersFrame() throws HeadlessException {
setTitle("JSettlers - Version: " + CommitInfo.COMMIT_HASH_SHORT);
SettingsManager settingsManager = SettingsManager.getInstance();
UiPlayer uiPlayer = settingsManager.getPlayer();
multiPlayerConnector = new MultiplayerConnector(settingsManager.getServer(), uiPlayer.getId(), uiPlayer.getName());
mainPanel = new MainMenuPanel(this, multiPlayerConnector);
showMainMenu();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(1200, 800));
pack();
setLocationRelativeTo(null);
fullScreen = settingsManager.getFullScreenMode();
updateFullScreenMode();
KeyboardFocusManager keyboardFocusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
keyboardFocusManager.addKeyEventDispatcher(e -> {
if (e.getID() == KeyEvent.KEY_PRESSED) {
if (e.isAltDown() && e.getKeyCode() == KeyEvent.VK_ENTER) {
toogleFullScreenMode();
return true; // consume this key event.
}
}
return false;
});
}
private void registerHotKeys() {
KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.addKeyEventDispatcher(keyEventDispatcher = this::dispatchKeyEvent);
}
private void setControlKeyMonitor() {
isControlKeyDown = false;
final KeyboardFocusManager kbFocusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
kbFocusManager.removeKeyEventDispatcher(keyEventDispatcher);
kbFocusManager.addKeyEventDispatcher(keyEventDispatcher);
}