• 締切済み

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>

みんなの回答

noname#147388
noname#147388
回答No.1

> 端末では実行するとちゃんと表示されるのですが が本当ならば HTMLの記述とファイルの位置があってないのかと。

masyurulu
質問者

お礼

ご回答ありがとうございます。 >が本当ならば HTMLの記述とファイルの位置があってないのかと。 というのはつまり、javaファイルとHTMLファイルが違うディレクトリにあるのでは? と言う解釈でいいのでしょうか? 上記の解釈で合っているのであれば、同じディレクトリにありますね・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Javaアプレットについてですが

    Javaアプレットでボタンを押したら数字が増えるものを作っているのですがどうもうまく動きません。 ソースは下の通りです。 変更しなければいけないところがあるならお願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Button; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Sample7 extends Applet implements Runnable, ActionListener { Button bt; int num; public void init() { bt = new Button("開始"); add(bt); bt.addActionListener(this); Thread th; th = new Thread(this); th.start(); } public void actionPerformed(ActionEvent ae) { public void run() { try{ for(int i=0; i<11; i++){ num = i; repaint(); Thread.sleep(1000); } } catch(InterruptedException e){} } } public void paint(Graphics g) { String str = num + "です。"; g.drawString(str, 50, 50); } }

    • ベストアンサー
    • Java
  • アプレットで再描画をする時ちらつく

    Javaアプレットで題名の通り再描画をするときにちらつきます。 ソースコードは大まかに表すとこのような感じです。 /*test.java*/ import java.applet.* import java.awt.Image; public class test extends Applet implements Runnable{  int a = b = c = d = e = f = g = h = 0;  Thread th;  Image im;  AudioClip au;  public void init(){   im = getImage(getDocumentBase('image.gif'););   au = getAudioClip(getDocumentBase('test.wav'););   a = c = e = g = 0;   th = new Thread();   th.start();   au.loop();  }  public void run(){   try{    while(true){     repaint();    }   }catch(){例外処理}  }  public void stop(){   au.stop();  }  public void paint(Graphics g){   g.drawImage(im,a,b,c,d,e,f,g,h);  } } ※ test.gif = 6KB test.wav = 400KB ついでに書いておきます。 OS:Me CPU:AMD アスロン 800MHz メモリ:256MB 起動時のリソース残量:77% 上のソースコードはうろ覚えなので、 間違えている箇所があるかもしれませんが、 コンパイルは正常に終了し、起動時エラーもありません。 宜しくお願いします。

    • ベストアンサー
    • Java
  • 画像表示アプレットプログラムについて

    Javaのプログラムを勉強中です。 javaを理解するために下記のプログラム(zukei.java)を作成しました。 このプログラムを実行(appletviewer zukei.java)すると エラーにはなりませんが、(3)の行により画像("b.jpg")がすぐには表示されません。表示されたWindowにほかのWindowをいったんのせてから動かすと(3)行により画像"b.jpg"が表示されます。 (1)(2)の行は最初からうまく動作して表示されます。 もちろん(3)のappletをthisにするとうまく動作します。 理由がわかりません。 どなたかご教授ください。 プログラム zukei.class *<APPLET CODE="zukei.class" WIDTH=500 HEIGHT=500></APPLET> */ import java.applet.*; import java.awt.Graphics; import java.awt.*; public class zukei extends Applet { Applet applet; Image myimage; int iKai; public zukei(){ applet = this.applet; } public zukei(Applet applet) { this.applet = applet; } public void init(){ iKai = 0; myimage = getImage(getDocumentBase(),"b.jpg"); } public void paint(Graphics g) { kaku(); //(1) g.drawArc(100,150,50,50,0,360); //(2) g.drawImage(myimage,10,300,180,180,applet); //(3) } public void kaku(){ System.out.println("ABC" + iKai++); } }

  • アプレットが初期化されていません。

    パッケージを使用してプログラムを書いたのですが、タイトルのとおりのメッセージがでます。コンパイルはしっかり通るのですが、どなたかお力をお貸しください。 ちなみに、Report2.html、Report2.javaは以下のとおりです。 <html> <body> <applet code="rep.Report2.class" width="400" height="200"> </applet> </body> </html> package rep; import gol.Goal; import bx.Box; import bx.BoxException; import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; import java.awt.Button; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Report2 extends Applet implements Runnable, ActionListener{ Goal gol; //Boxオブジェクトがはいるゴール Box[] box; Button[] bt; int mxp; //マウスボタン押下時のx座標 int myp; //マウスボタン押下時のy座標 public void init(){ addMouseListener(new MouseAdapter(){ public void mousePressed(MouseEvent e){ mxp=e.getX(); myp=e.getY(); } public void mouseReleased(MouseEvent e){ int temp=Box.getSum(); if(temp<box.length){ //マウスボタンを離した座標 int mxr=e.getX(); int myr=e.getY(); if(mxp==mxr && myp==myr){ //押すのと離すのが同じ box[temp]=new Box(gol, mxp, myp); } else{ //押すのと離すのが違う int mw=Math.abs(mxp-mxr); int mh=Math.abs(myp-myr); box[temp]=new Box(gol, Math.min(mxp, myr), Math.min(myp, myr), mw, mh); } box[temp].start(); } } }); Goal gol=new Goal(); box=new Box[3]; bt=new Button[2]; bt[0]=new Button("Box"); bt[1]=new Button("small"); for(int i=0; i<bt.length; i++){ add(bt[i]); bt[i].addActionListener(this); } Thread th; th=new Thread(this); th.start(); } public void run(){ while(true){ repaint(); try{ Thread.sleep(50); } catch(InterruptedException e){ } } } public void actionPerformed(ActionEvent ae){ int temp=Box.getSum(); if(ae.getSource()==bt[0]){ if(temp<box.length){ box[temp]=new Box(gol); box[temp].start(); } } else if(ae.getSource()==bt[1]){ for(int i=0; i<temp; i++){ try{ box[i].setHeight(box[i].getHeight()-10); } catch(BoxException e){ System.out.println(e +"が送出されました。"); } } } } public void paint(Graphics g){ g.setColor(Color.red); for(int i=0; i<box.length; i++) if(box[i] !=null) g.fillRect(box[i].getX(), box[i].getY(), box[i].getWidth(), box[i].getHeight()); g.setColor(Color.black); g.drawString("得点" + gol.getScore(), 10, 80); } }

  • Javaアプレットとマルチスレッドの組み合わせ

    Javaアプレットとマルチスレッドを組み合わせてパラパラ漫画のようなものを作りたいのですがうまくいきません。 import java.awt.Graphics; import java.awt.Image; public class kadai4 extends java.applet.Applet implements Runnable{ Image logoImage[]; Thread runner; int current; int last=6; public void init(){ logoImage=new Image[last]; for(int i=0;i<last;i++){ logoImage[i] = getImage(getCodeBase(),"image/logo" + (i+1) + ".gif"); } } public void start(){ if(runner == null){ runner = new Thread(this); runner.start(); } } public void stop(){ if(runner != null){ runner.stop(); runner=null; } } public void run(){ while(true){ for(int i=0;i<last;i++){ current=i; repaint(); pause(400); } } } public void paint(Graphics g){ g.drawImage(logoImage[current],50,25,50,50,this); } void pause(int time){ try { Thread.sleep(time);} catch (InterruptedException e) {} } } これを実行すると推奨されない API を使用またはオーバーライドしています。というエラーが発生するのですがどうすれば良いでしょうか?他の方法でも構いません

    • ベストアンサー
    • Java
  • アプレットがうまく動かない…

    javaを勉強しています。本を参考にして、下記のようなアプレットを書いたのですが、さらにその下のようなエラー(?)が表示されてしまって、画像が表示されません。もしこれだけの情報で見当がつきましたら、よろしくお願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Image; public class main extends Applet{ Image img; public void init(){ img = getImage(getDocumentBase(), "test.jpg"); } public void paint(Graphics g){ g.drawImage(img,0,0,this); } } java.lang.UnsupportedClassVersionError: main (Unsupported major.minor version 49 .0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:537) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12 3) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:157) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:123) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:561) at sun.applet.AppletPanel.createApplet(AppletPanel.java:617) at sun.applet.AppletPanel.runLoader(AppletPanel.java:546) at sun.applet.AppletPanel.run(AppletPanel.java:298) at java.lang.Thread.run(Thread.java:534)

    • ベストアンサー
    • Java
  • Java applet

    Java appletを使用する課題なのですが、 途中まで書いて、それから止まってしまっています。 アドバイスなど頂ければ嬉しいです。 課題は、 (1)右から左へ動く文字列左から右へ動く文字列とを表示 (2)文字列が消えたらまた出てくるようにする (3)マウスのクリックボタンを押すと止まり、離すと動きだすようにする (2)まで考えたプログラム(コンパイル、実行済)を以下に載せます。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class SasakiYui extends Applet implements Runnable{ Thread th = null; Graphics g; int x; public void init(){ setBackground(Color.white); } public void start(){ if(th == null){ th = new Thread(this); th.start(); } } public void run(){ while(!Thread.interrupted()){ for(x=600;x>-300;x=x-5){ repaint(); try{ Thread.sleep(50); } catch(InterruptedException e){} } } } public void paint(Graphics g){ g.drawString("Happy Brithday!",x,10); g.drawString("Happy Birthday!",600-x,40); } } (3)ができるようにするには、 addMouseListener(new Mouseadapter(){ public void mousePressed(MouseEvent e){……} を使用するのだろうとは思うのですが、 ・これを組み込むのはpublic void init(){の後で良いか ・……の部分に何を書けばいいのか の2点がわかりません; よろしければ、アドバイスお願い致します!

    • ベストアンサー
    • Java
  • コンポーネントの組み込みについて

    アプレットでもAWTアプリでもSwingアプリでもなんでもいいんですが、 特定の条件を満たした時に、はじめは表示されていないボタンやテキストフィールドなどを後から表示させたいのですが、できません。 単純にadd()ではできないようで… やり方を教えていただけませんか。。 下は、10秒後にボタンが表示されるように自分で作ってみたサンプルアプレットです。 //<applet code="buttonsample.class" width=300 height=200></applet> import java.applet.*; import java.awt.*; import java.awt.event.*; public class buttonsample extends Applet implements Runnable { int count; //カウント Thread th; //スレッド Button BT; //ボタン public void init() { setLayout(new FlowLayout()); count = 0; BT = new Button(); BT.setLabel("ボタン"); } public void start() { if(th == null) { th = new Thread(this); th.start(); } } public void stop() { th = null; } public void run() { while(count < 10) { repaint(); count++; try { Thread.sleep(1000); } catch(InterruptedException e){} } add(BT); } public void paint(Graphics g) { g.drawString(""+(count+1),100,100); } } <EOS>

    • ベストアンサー
    • Java
  • Javaを説明するには

    4枚の絵をパラパラアニメにするソースなのですが。これをわけ合って説明しなくてはならなくなってしまいました。 薄らぼんやりとはわかるのですが。どう説明したらいいのかさっぱり分かりません、どう説明すれば、分かりやすく正しく伝えられるでしょうか?>< import java.applet.Applet; import java.awt.Graphics; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class DNA extends Applet implements Runnable, ActionListener { Image image[] = new Image[4]; int[] timing = { 400,350,230,350}; Thread t; int index1 = 0; int no = 0; private static final long serialVersionUID = 1L; public void init(){ for(int i = 0; i<4; i++){ image[i] = getImage(getDocumentBase(),"img"+(i)+".gif"); } } public void paint(Graphics g){ g.drawImage(image[index1],0,0,this); } public void update(Graphics g) { paint(g); if(++no==4)no=0; } public void start(){ t = new Thread(this); t.start(); } public void run() { while(true){ index1++; if(index1 == 4){ index1 = 0; } repaint(); try{ Thread.sleep(timing[no]); }catch(InterruptedException e){} }} public void actionPerformed(ActionEvent arg0) { } }

  • アプレットが開始しないエラーについて

    今Javaで「1」のキーを押すと、現在表示されている画像が変わるアプレットを作っています。 書いたプログラムは以下です。 import java.applet.*; import java.awt.*; import java.awt.event.*; import java.lang.String; class Gazou extends Applet { private Image pic[] = new Image[3]; private int stat,stat2; private char pushkey; public Gazou(String name1, String name2, String name3, char c1) { this.stat=0; this.pic[0] = getImage(getDocumentBase(),name1); this.pic[1] = getImage(getDocumentBase(),name2); this.pic[2] = getImage(getDocumentBase(),name3); this.pushkey = c1; } public Image GetPicture(char n) { if(pushkey == n) { if(this.stat == 0) this.stat = 1; this.stat2=0; if(this.stat == 1) this.stat = 2; this.stat2=1; if(this.stat == 2) this.stat = -1; this.stat2=2; } return this.pic[this.stat2]; } } public class ImageView extends Applet implements KeyListener { char flg; Gazou data = new Gazou("1-1.JPG","1-2.JPG","a.JPG",'1'); public void init() { addKeyListener(this); } public void paint(Graphics g) { if(flg == '1') g.drawImage(data.GetPicture(flg),0,0,this); } public void keyPressed(KeyEvent e) { flg = e.getKeyChar(); repaint(); } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} } 1-1.JPG,1-2.JPG,a.JPGはソースファイルと同じディレクトリに保存してあります。 NullPointerExceptionが出てるので代入ミスなのかと思っているのですが、どこを直したらよいかわかりません。 どなたか分かる方ご教授おねがいします。 エラーメッセージは別に示します。

    • ベストアンサー
    • Java
このQ&Aのポイント
  • 義母と夫からの育児アドバイスによるストレスや、自分の育児が間違っているのではないかという不安を抱えている母親の話。
  • 子供の要望に合わせてゆるい育児をしていることに対して義母は批判的で、自分が与えたお菓子やゼリーから子供を取り上げた時に泣き喚くことがある。
  • 自分が壊れないようにゆるい育児をしていることに、いけない母親ではないかと悩んでいる。
回答を見る

専門家に質問してみよう