gpt4 book ai didi

java - 如何在 Java 中为 CheckBoxMenuItems 设置加速器快捷方式?

转载 作者:行者123 更新时间:2023-11-30 11:38:00 24 4
gpt4 key购买 nike

我正在用 Java 编写一个简单的绘图程序,我有一个 MenuBar(不是 JMenuBar)来选择要绘制的形状和颜色。我想设置键盘快捷键以在矩形、椭圆形和直线之间进行选择。我知道我可以将 MenuShortcut 用于 MenuItems,但这不适用于 CheckBoxMenuItems。有什么线索可以实现吗?

最佳答案

也许这需要一个 JRadioButtonMenuItem鉴于用户将一次绘制一个元素(例如,什么是椭圆线?)。

JRadioButtonMenuItem 有一个加速器。例如

Radio Menu Demo

import javax.swing.*;

public class RadioMenuDemo {

public static void main(String[] args) {
Runnable r = new Runnable() {

@Override
public void run() {
JPanel gui = new JPanel();

JMenuBar mb = new JMenuBar();
JMenu shapes = new JMenu("Draw");
mb.add(shapes);
ButtonGroup bg = new ButtonGroup();
shapes.setMnemonic('D');

JRadioButtonMenuItem line = new JRadioButtonMenuItem("Line");
line.setAccelerator(KeyStroke.getKeyStroke("L"));
shapes.add(line);
bg.add(line);

JRadioButtonMenuItem oval = new JRadioButtonMenuItem("Oval");
oval.setAccelerator(KeyStroke.getKeyStroke("O"));
shapes.add(oval);
bg.add(oval);

JRadioButtonMenuItem rect = new JRadioButtonMenuItem("Rectangle");
rect.setAccelerator(KeyStroke.getKeyStroke("R"));
shapes.add(rect);
bg.add(rect);

JFrame f = new JFrame("Radio menu items");
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setJMenuBar(mb);
f.pack();
f.setLocationByPlatform(true);
f.setVisible(true);
}
};
SwingUtilities.invokeLater(r);
}
}

关于java - 如何在 Java 中为 CheckBoxMenuItems 设置加速器快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13794058/

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