gpt4 book ai didi

java - 在 JPopupMenu 中为 JMenuItems 创建快捷方式

转载 作者:行者123 更新时间:2023-12-04 05:17:30 24 4
gpt4 key购买 nike

我需要 JPopupMenu 中 JMenuItems 的快捷方式。
在下面给出的代码中,快捷方式不起作用。

import java.awt.event.*;
import javax.swing.*;
import static java.awt.event.InputEvent.CTRL_DOWN_MASK;

public class test3 implements ActionListener {

JPopupMenu pop;

void gui() {
JFrame f = new JFrame();

pop = new JPopupMenu();
JMenuItem it1 = new JMenuItem("new");
JMenuItem it2 = new JMenuItem("old");
it1.setAccelerator(KeyStroke.getKeyStroke('N', CTRL_DOWN_MASK));
it2.setAccelerator(KeyStroke.getKeyStroke('O', CTRL_DOWN_MASK));
it1.addActionListener(this);
it2.addActionListener(this);
pop.add(it1);
pop.add(it2);
JTextArea ta = new JTextArea(20, 40);
ta.add(pop);

ta.addMouseListener(new MouseAdapter() {

public void mousePressed(MouseEvent me) {
if (me.isPopupTrigger()) {
pop.show(me.getComponent(), me.getX(), me.getY());
}
}

public void mouseReleased(MouseEvent me) {
if (me.isPopupTrigger()) {
pop.show(me.getComponent(), me.getX(), me.getY());
}
}
});

f.add(ta);
f.pack();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}

public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals("new")) {
System.out.println("new");
} else if (ae.getActionCommand().equals("old")) {
System.out.println("old");
}

}

public static void main(String[] argv) {
test3 t = new test3();
t.gui();
}
}

最佳答案

您发布的代码的唯一问题是语法错误。否则它正在工作。 CTRL_DOWN_MASK 是 KeyEvent 类中的常量,因此您需要声明:

    KeyEvent.CTRL_DOWN_MASK

所以这条线应该是:
    it1.setAccelerator(KeyStroke.getKeyStroke('N', KeyEvent.CTRL_DOWN_MASK)); 

并从您的代码中删除静态导入行。那应该编译并按预期工作。

关于java - 在 JPopupMenu 中为 JMenuItems 创建快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14081056/

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