这个问题可能非常小,但让我感到沮丧。我一直试图制作一个小程序来解决关键问题,但它给出了错误。
public static void key() {
//another way to use the JComonent class?
JComponent component;
Main main = new Main();
JFrame frame = new JFrame();
frame.getContentPane().add(main);
Action test = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
}
};
//"The local variable component may not have been initialized" for component
component.getInputMap().put(KeyStroke.getKeyStroke("A"), "test");
component.getActionMap().put("test", test);
}
感谢您的帮助。
答案 0 :(得分:1)
您永远不会为JComponent component;
分配值。这就是您收到错误的原因。
您可以将其更改为JComponent component = null;
,错误消失了。但是你在运行时在行component.getInputMap().put(KeyStroke.getKeyStroke("A"), "test");
中得到一个NPE,所以你必须为`component分配一个合适的值。