私はJavaの初心者です。私の最初のプロジェクトでは、私は独占ゲームを構築し始めました。Javaグラフィックの問題
私はグラフィックスメソッドを使用してSWINGにGUIを構築しています。
答えが見つからない2つの問題が発生しました。
最初の1つは、以前同じプロジェクトで別のJPanelで同じ方法で行っていたJPanelに背景色を設定できないようです。
画像を追加しようとしているうちにNullPointerException
が表示されます。try/catch
でこのエラーを修正できましたが、グラフィックスはペイントされないようです。同じメソッドを使用して読み込みました以前のJPanelで画像を追加しても機能しました。
私の現在のJFrameには、3つの要素が別々のクラスにあり、BorderLayout()を使用して追加されています。
これは、問題を作成しているクラスのコードです:
public class MonopolyBoard extends JPanel{
Image atlantic;
MonopolyBoard() {
this.setBorder(new EtchedBorder());
this.setBackground(new Color((80), (180), (210))); //this code dosent work
//this throws exception without try catch
try{
ImageIcon a = new ImageIcon(this.getClass().getResource("../Card/Atlantic Ave.jpg"));
atlantic = a.getImage();
}
catch(NullPointerException e){}
}
public void paint(Graphics g){
}
Graphics2D g2 = (Graphics2D) g;
//this code should draw the image but it dosent
g2.drawImage(atlantic, 100, 100, null);
g.drawImage(atlantic, 100, 100, this);
};
}
が '試す/ catch'を使用しないでください。スタックトレースを送信します。 –
"Swingプログラムは、' paint() 'をオーバーライドするのではなく' paintComponent() 'をオーバーライドする必要があります。" - [AWTとSwingのペイント:ペイントメソッド](http://java.sun.com/products/jfc/tsc/ articles/painting/index.html#コールバック)。 – trashgod
"これはtry catchなしで例外をスローします" - これは間違っています。ブロックが例外をスローした場合、try/catchに関係なくブロックが例外をスローします。 try/catchブロックが実行するのは、その例外です。その結果、デバッグが不可能になりにくくなります。例外がスローされたことを理解し、ラグの下に隠すのではなく理解する必要があります。 – Mat