- - PR -
クラスの配列インスタンス
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-26 03:49
みなさんはじめまして。java超初心者のhemaです。この場でこんなに容易な質問をしてしまい申し訳ないのですが、どうしても行き詰ったためみなさんのお力お借りしたいです。
JFrameを使ってアプレットで簡単な図(fillOval)を表示させたいのですが、何も表示されないんです(コンパイルは通るのですが・・・)。プログラムの内容は下記に示しますようにGuiExampleクラスからPacManクラスを利用して表示させるという形です。自分で言うのもなんですがGuiExampleクラスのpaintメソッドでの”PacMan per[] = new PacMan[2];”あたりの配列インスタンス定義がおかしいのでしょうか?? すいませんがよろしくお願いします。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GuiExample extends JFrame{ /*コンストラクタ*/ public GuiExample(){ setBackground(Color.white); setSize(400,300); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } }); } /***paint***/ public void paint(Graphics g){ PacMan per[] = new PacMan[2]; per[0] = new PacMan(100,200);//パックマン1の定義 per[1] = new PacMan(200,200);//パックマン2の定義 per[2] = new PacMan(300,200);//パックマン3の定義 for(int i=0;i<3;i++){ per[i].draw(g); } } public static void main(String[] args){ GuiExample w = new GuiExample(); w.setVisible(true); } } /*パックマンクラス*/ class PacMan{ int x,y;//中心座標 PacMan(int a,int b){ x = a; y = b; } public void draw(Graphics a){ a.setColor(Color.black); a.fillOval(x,y,150,30); } } | ||||||||
|
投稿日時: 2006-08-26 13:39
些細なことですが、広い意味では「アプレット」なのかもしれませんが、通常はこれはアプレットとは呼ばないです(ブラウザー上で動かないので)。
ここには個数を書くので 2 ではなく 3 になります。ちなみに、たとえば VB の配列だと 2 なのですが。 これを直すと一応、画が出ます。パックマンってこんな形でしたっけ? なお、実行時に ArrayIndexOutOfBoundsException が出ていますので、まずは、それを検知してデバッグできる環境を整えられたほうがよいでしょう。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} | ||||||||
|
投稿日時: 2006-08-26 18:11
unibonさん、大変参考になりました。ありがとうございました。
|
1