2016-11-21 17 views
0

JPanelでイメージを表示するJButtonを作成しようとしています。ユーザーがパネル内の場所を選択できるようにしました。私は、塗料に、次の方法を使用しています:ActionListenerでイメージを追加する

public void paint(Graphics g, URL path) { 
    Image img = getImage(path); 
    Graphics2D g2 = (Graphics2D)g; 
    g2.drawImage(img, getX(),getY(),50,50, null); 
} 

public Image getImage(URL path) { 
    Image temp = null; 
    try 
    { 
     temp = Toolkit.getDefaultToolkit().getImage(path); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return temp; 
} 

私は塗料を()を呼び出すと、私は私のActionListenerの私の最後の行にnullポインタ例外を取得:

dogButton.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent ae) { 
      Graphics g = null; 
      Animal animal = new Animal(); 
      animal.paint(g, main.class.getResource("/Animals/dog.jpg")); 
     } 

私は少し混乱しています全体的にActionListenersの使い方について説明します。これは私の最初のプロジェクトです。私は知識の不足をお詫びします。

+0

何ですか? 'グラフィックg =ヌル;' ?? –

答えて

1

あなたはNPEしたがって、nullをキャストすることはできません、あなたはそれを Graphics2D g2 = (Graphics2D)g;

をキャストしようとしている Graphics g = null;

以降paintメソッド内に設定しています。

ヌル以外でgを初期化します。

このグラフィックをペイントして使用する予定のJPanelのpublic void paintComponent(Graphics g)を上書きすることをお勧めします。

関連する問題