- 締切済み
Start : アプレットは初期化されていません。
閲覧ありがとうございます。 Fedora15でjavaの勉強をしてる者なのですが、端末では実行するとちゃんと表示されるのですが HTMLファイルをダブルクリックで実行するとタイトルのエラーが出て困っています。 内容としては、スレッドの勉強でスタートボタンを押すとリンゴが2個落ちるプログラムです。 もしよろしければ、アドバイスを頂けると嬉しいです。 下記ソースコード。 import javax.swing.*; import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.lang.*; public class Apple extends Applet implements Runnable,ActionListener { Image bu; //バッファ宣言 Graphics off_g; //グラフィック宣言 JButton b, bb; //スタートボタン Image img1 ; //ringo.gifを格納 int s=0, w = 450, h = 300; int a1 = 0, b1 = 1, a2 = 0, b2 = 1; Thread th ; //スレッドのインスタンス生成 boolean threadFlg = false; public void init(){ a1 = 0; b1 = 1; a2 = 0; b2 = 1; setBackground(Color.white); b = new JButton("スタート"); b.addActionListener(this); add(b); b.setBounds(300,30,100,30); bb = new JButton("ストップ"); bb.addActionListener(this); add(bb); bb.setBounds(370,30,100,30); threadFlg = true; th = new Thread(this); th.start(); img1 = getImage(getClass().getClassLoader().getResource("ringo.gif")); } public void actionPerformed(ActionEvent e){ if(e.getSource() == b){ s = 1; } if(e.getSource() == bb){ stop(); } } public void run(){ while(threadFlg){ if( s == 1){ a1 = a1 + b1; System.out.println(a1); a2 = a2 + b2; System.out.println(a2); if(a1 >= 300 && a2 >= 300 ){ break; } repaint(); } try{ th.sleep(30); }catch(InterruptedException e){} } } public void update(Graphics g){ paint(g); } public void paint(Graphics g){ super.paint(g); if(s == 1){ off_g.drawImage(img1,30,a1,this); off_g.drawImage(img1,250,a2,this); g.drawImage(bu,20,30,this); } } public void start(){ bu=createImage(w,h); off_g=bu.getGraphics(); //グラフィックコンテキストを得る? } public void stop(){ threadFlg = false; th = null; } } <html> <title>Apple</title> <body> <applet code="Apple.class" width="450" height="300"> </applet> </body> </html>
- みんなの回答 (1)
- 専門家の回答
みんなの回答
> 端末では実行するとちゃんと表示されるのですが が本当ならば HTMLの記述とファイルの位置があってないのかと。
お礼
ご回答ありがとうございます。 >が本当ならば HTMLの記述とファイルの位置があってないのかと。 というのはつまり、javaファイルとHTMLファイルが違うディレクトリにあるのでは? と言う解釈でいいのでしょうか? 上記の解釈で合っているのであれば、同じディレクトリにありますね・・・。