请参阅此Screenshot。
我只想在用户ENTER退出菜单项框架关闭时。我已尝试执行动作和按键事件,但没有一个正在工作。
使用this .dispose
和system.exit(0);
AND EXIT MENU应该按ENTER键关闭
我用的时候:
private void jMenu2MenuKeyPressed(javax.swing.event.MenuKeyEvent evt) {
System.out.println("erygr444eyh3443");
}
适用于所有菜单项
第二种方法:
private void jMenu2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.out.println("erygreyh");
if (evt.getSource() == jMenu2) //exit
{
System.exit(0);
}
}
它不起作用。
第三种方法:
private void jMenu10KeyPressed(java.awt.event.KeyEvent evt) {
System.out.println("sfgd4r7y648hh6889");
}
适用于所有菜单项。
答案 0 :(得分:1)
看起来您正在使用Netbeans GUI Builder。有了这个说法,看起来你有自动生成的JMenu
代码的监听器。相反,您需要jMenuItem
确保在添加监听器时右键单击jMenuItem
(从设计视图)而不是jMenu
。
另外,请务必添加ActionListener
而不是KeyListener
如果右键点击jMenuItem
(而不是jMenu
)并添加actionPerformed
,则会自动生成此代码
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
}
您是否看到了与代码的区别?您有jMenuXActionPerformed
,这意味着收听者已添加到JMenu
而不是JMenuItem
。
同时确保JMenuItem
添加JMenu
而不是JMenu
s
更新到OP评论。
File
JMenuItem
。虽然它以橙色突出显示,mnemonic
的媒体资源。输入F
F
File
JMenu
下方看到一行
JMenuItem
拖到File
JMenu
并向其添加actionPerformed
。Sysem.exit()
现在运行程序时,按 Alt + F ,将弹出菜单。按下直到您退出程序的JMenuItem
,然后按 Enter 。
这应该是关于你正在寻找什么
如果您想添加加速器,只需双击shortcut
所示的while小文本框,然后您可以选择jMenuItem
的快捷方式。您可以使用另一个键添加Ctrl掩码。有许多可能的组合供您选择
答案 1 :(得分:0)
private void menuExitActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
使用ActionPerformed而不是KeyPressed将解决您的问题