【发布时间】:2016-02-23 08:43:48
【问题描述】:
首先,我知道如何使用以下代码添加 Enter 热键:
JPanel panel = new JPanel();
//...
JButton button = new JButton("Execute");
panel.getRootPane().setDefaultButton(button); // Hotkey "Enter" by default
// ...
panel.add(button);
但在这种情况下,下面的代码
class LeftPanel extends JPanel
{
LeftPanel()
{
setLayout(null);
setBounds(2, 42, 146, 252);
button();
}
void button()
{
JButton exebutton = new JButton("Execute");
//getRootPane().setDefaultButton(exebutton); // Hotkey "Enter" by default
exebutton.setMnemonic(KeyEvent.VK_ENTER); // Shortcut: Alt + Enter
exebutton.setBounds(4, 18, 138, 47);
add(exebutton);
}
}
如何添加 Enter 热键? getRootPane().setDefaultButton(exebutton); 不起作用。我收到一个错误:
线程“主”java.lang.NullPointerException 中的异常
这是我的框架类
public class MyFrame extends JFrame
{
MyFrame()
{
setTitle("Frame Test");
setSize(400, 200);
setLayout(null);
LeftPanel leftpanel = new LeftPanel();
add(leftpanel);
setVisible(true);
setDefaultCloseOperation(MyFrame.EXIT_ON_CLOSE);
}
}
和我的主要
public static void main(String[] args)
{
new MyFrame();
}
Alt+Enter 快捷方式有效,但 Enter 无效。
【问题讨论】: