gpt4 book ai didi

java - 如何让 Command-W 在 Mac OS 上用 Java 或 Clojure 关闭窗口

转载 作者:搜寻专家 更新时间:2023-10-30 21:27:08 25 4
gpt4 key购买 nike

我想让 + W 在我用 Clojure 编写的程序中关闭窗口/JFrame。这将如何实现?也欢迎使用纯 Java 解决方案。

最佳答案

这是一种方法:

 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()));

将该 Action 放在菜单栏的菜单中。在 Windows 上,加速器为 Ctrl + W

可能更好的方法是使用 Keybinding API让每个 JFrame 中的主面板(假设有多个)在其 (WHEN_FOCUSED) 输入映射中将相同的 KeyStroke 绑定(bind)到一个关闭框架的 Action 图中的 Action 。

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);
}
}

关于java - 如何让 Command-W 在 Mac OS 上用 Java 或 Clojure 关闭窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4209975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com