11 java macos keyboard-shortcuts clojure
我想有⌘+ W关闭窗口/ JFrame程序中,我用Clojure写.这怎么可能实现?也欢迎纯Java解决方案.
Col*_*inD 13
这是一种方式:
Action closeWindow = new AbstractAction("Close Window") {
@Override public void actionPerformed(ActionEvent e) {
// window closing code here
}
};
closeWindow.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke(
KeyEvent.VK_W, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()));
Run Code Online (Sandbox Code Playgroud)
把它Action放在你的菜单栏上的菜单中.Windows上的加速器将为Ctrl+ W.
可能更好的方法是使用Keybinding API让每个主面板JFrame(假设有多个)KeyStroke在其(WHEN_FOCUSED)输入映射中将其与上面相同的绑定到其关闭帧的动作映射中的动作.
public class ClosableWindow extends JFrame {
public void setUp() {
JPanel mainPanel = createMainPanel();
int mask = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
KeyStroke closeKey = KeyStroke.getKeyStroke(KeyEvent.VK_W, mask);
mainPanel.getInputMap().put(closeKey, "closeWindow");
mainPanel.getActionMap().put("closeWindow",
new AbstractAction("Close Window") {
@Override public void actionPerformed(ActionEvent e) {
setVisible(false);
dispose();
}
});
getContentPane().add(mainPanel);
}
}
Run Code Online (Sandbox Code Playgroud)