-1

NullPointerException が発生します。ここで何が問題なのですか?

public class MainPanel extends JPanel {
    private final int WIDTH = 600;
    private final int HEIGHT = 400;
    private InputMap imap = getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    private ActionMap amap;


    public MainPanel() {
        setPreferredSize(new Dimension(WIDTH, HEIGHT));
        makeShortcut("UP", new AbstractAction() {
            public void actionPerformed(ActionEvent ev) {
                System.out.print("up");
            }
        });
    }

    public void makeShortcut(String keys, AbstractAction action) {
        imap.put(KeyStroke.getKeyStroke(keys), "action"+keys);
        amap.put("action"+keys, action);
    }
}

あなたの投稿には、コード セクションを説明するコンテキストがあまりありません。シナリオをより明確に説明してください。

4

1 に答える 1

3
amap.put("action"+keys, action);

を割り当てたことがないamapため、デフォルト値はnullです。null 参照でインスタンス メソッドを呼び出すことはできません。

于 2013-01-25T19:10:10.750 に答える