JMenuItem item = new JMenuItem("Connect", 'C');
KeyStroke ks = KeyStroke.getKeyStroke('C', Event.CTRL_MASK);
item.setAccelerator(ks);
item.addActionListener(this);
item.setEnabled(false);
item.setEnabled(true);
我不能再用加速器了。JMenuItem在菜单中正确地显示为已启用,我可以用鼠标单击它(我的ActionListener正常工作),但加速器不工作--所以我不能再用Ctrl+C启动“Connect”了。
你们中有谁知道这个问题是什么或者我该如何避免它吗?
其他菜单项的加速器(但没有beeing暂时禁用)正在工作。打电话时
item.getAccelerator();
下面是一个程序的小代码,它不对键击Ctrl+C做出反应,它连接到一个菜单项:
public class ProblemDemo extends JFrame implements ActionListener {
public ProblemDemo() {
super("ProblemDemo");
setSize(500,500);
setLocation(500,300);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JMenuBar menubar = new JMenuBar();
JMenuItem menuItem = new JMenuItem("JMenuItem", 'C');
menuItem.setAccelerator(KeyStroke.getKeyStroke('C', Event.CTRL_MASK));
menuItem.addActionListener(this);
JMenu menu = new JMenu("Actions");
menu.add(menuItem);
menubar.add(menu);
setJMenuBar(menubar);
JTextArea textarea = new JTextArea();
getContentPane().setLayout(new BorderLayout());
getContentPane().add(textarea, BorderLayout.CENTER);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent event) {
if ("JMenuItem".equals(event.getActionCommand())) {
System.out.println("JMenuItem clicked");
}
}
public static void main(String[] args) {
new ProblemDemo();
}
}
只有在通过调用ListSelectionListener中的setEnabled(true)在JTable中选择了某些内容时,我才尝试启用Copy/Cut菜单项(以及工具栏中的按钮)时遇到了同样的问题。
我通过在每次调用setEnable(true)时为包含这些项的JMenuBar调用requestFocusInWindow来解决我的问题。
似乎选择表中的某些内容会将Ctrl+C/Ctrl+X指向表...
对于我的摆动应用程序,的加速器设置如下: 当GUI初始化时,这会使菜单项旁边的文本为“Ctrl Shift 3”,但当然意图是文本为“Ctrl#”。我怎么做?
尝试运行,你能帮我解决吗? 线程“main”java.lang.NoClassDefFoundError:无法初始化类org.codehaus.groovy.reflection。org.codehaus.groovy.runtime.dgmimpl.NumberNumberMetaMethod.java:33上的ReflectionCache位于java.base/jdk.internal.re
问题内容: 我向这样的工具栏添加菜单: 基本上,它工作正常。但是,它永远不会显示工具提示(“添加新项”)。有什么提示吗? 编辑:以防万一遇到相同问题的人偶然发现:这是L&F,正如我从一开始就应该怀疑的那样。它具有显示JMenuItems工具提示的属性;并且默认为false。 问题答案: 下面的sscce可以正常工作。如果您仍然有问题,请编辑问题,以包含显示您所描述问题的示例。 附录:我将添加到,它
我在tomcat上配置了ssl,在IE上禁用了tls支持,并启用了ssl支持,但我仍然得到错误消息 Tomcat设置
我有一个简单的地图减少工作,我正在建立反向索引。 我的映射器工作正常(我检查过了),并输出了word和docID:TFIDF值的密钥对: 映射器(仅显示输出): 化简器的唯一工作是组合这些值。这是我的实现: 然而,它没有组合任何东西,输出看起来基本上与来自映射器的相同。输出中有一些行具有相同的键,尽管reducer应该将它们组合起来——基本上,使用reducer时,输出文件中的所有键都应该是唯一的
介绍 (Introduction) JMenuItem类表示菜单中的实际项目。 菜单中的所有项都应该来自JMenuItem类或其子类之一。 默认情况下,它包含一个简单的标签菜单项。 Class 声明 (Class Declaration) 以下是javax.swing.JMenuItem类的声明 - public class JMenuItem extends AbstractButton