Javaを説明するには?

このQ&Aのポイント
  • Javaをわかりやすく説明する方法とは?
  • Javaを正しく伝えるための方法を知りたい!
  • 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) { } }

質問者が選んだベストアンサー

  • ベストアンサー
  • zionic
  • ベストアンサー率39% (31/79)
回答No.2

動作の説明はそんな感じでいいんじゃないでしょうか? で、paintとrepaintの違いですが、APIマニュアルには repaintはupdateメソッドを可能な限りすばやく呼びます。 とかかれてます(端折っていますが)。 なので、paintメソッドとrepaintメソッドは処理する内容が違うということになります。 メソッドとか知りたいけど本に無い時はAPIマニュアルを見るといいですよ。

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html

その他の回答 (1)

noname#18558
noname#18558
回答No.1

自分で作成したプログラムなら、なぜそういうコードになったか説明できるんじゃないですか? 人に説明してくれと頼むのはあまりにも都合が良すぎます。 とりあえず、自分で説明を書いてみて添削してもらうっていうのはどうですか。

megumi0808
質問者

補足

そうですね、すみません。 本を見ながらやったのではっきりと理解できていなくて; とりあえず説明すると以下のようになります スレッドを使用してアニメを作っています。 イメージ、タイミングを配列で読み込み。 repaintで再描画し、sleepで一時停止してタイミングを図っています。 startメソッドではスレッドクラスのオブジェクトを作成しrunメソッドをスタートさせている。(thisというのはアプレット自身ということですよね?) 画像の切り替わりの説明がよく分かりません、 runメソッド、updateメソッドで画像を切り替え、paintメソッドで画像を表示させているでいいのでしょうか? paintメソッドとrepaint(再描画)の区別がよくわからないです。

関連する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アプレットとマルチスレッドの組み合わせ

    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アプレットの課題について

    大学の授業の課題についてなんですが、 javaアプレットを使って 「徐々に大きな四角形を表示させ、ある程度の大きさの四角形になったらまた最初に戻り、さらにボタンを表示させ、ボタンを押す度に四角形の拡大をストップ、スタートさせるプログラムを作れ。また、マウスでクリックした部分を中心に、徐々に大きな四角形を表示させるようにもするように。」 という、自分でも書いていて分からなくなりそうな内容の課題が出されまして、先生などのアドバイスを頼りに import java.applet; import java.awt.Graphics; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.Color; import java.awt.Button; public class Report1 extends Applet implements ActionListener,Runnable { int x = 10; int y = 10; Button bt; public void init() { addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { x = e.getX(); y = e.getY(); repaint(); } }); { bt.setLabel("pause"); } while{ } if() repaint(); public void paint(Graphics g) { g.setColor(Color, white); g.fillRect(0, 0, 400, 400); } public void update(Graphics g){ paint(); 何とか上のような感じにまではこぎつけたのですが、 ここからは正直どうすればいいのか検討がつかず お手上げ状態なんです... どなたか解答又は参考になるサイトがあれば 教えていただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • JAVAの文法について教えてください。

    JAVAを学習しはじめたばかりの初心者です。 下記のプログラムに関してわからないので教えてください。 下記はtest.gif画像を表示するプログラムなのですが、 イメージを表示するために import java.awt.Graphicsをインポートして、 Image im でオブジェクトを宣言するのはわかるのですが、 通常はこの後に im = new Image() のようにインスタンス化する必要があると思うのですが、 このプログラムにはありません。 なぜ不要なのでしょうか? ********************** import java.applet.Applet; import java.awt.Graphics; import java.awt.Image; public class MyImage extends Applet{ Image im; public void init(){ im = getImage( getDocumentBase(), "test/test.gif" ); } public void paint(Graphics g){ g.drawImage( im ,10,10, this); } }

    • ベストアンサー
    • Java
  • JAVAのプログラミングについて

    色変更というボタンを押すたびに、正方形の中の色が緑から青、青から緑というように繰り返し色が変わるプログラムを作りたいのですが、途中までは、完成できたのですが、ここからどうすればいいかわかりません。教えてください。 import java.awt.*; import java.applet.*; import java.awt.event.*; public class kadai3Applet extends Applet implements ActionListener { int i = 1; Button collor; public void init(){ collor = new Button("色変更"); collor.addActionListener(this); add(collor); } public void paint(Graphics g){ g.setColor(Color.green); g.fillRect(50,50,50,50); } public void actionPerformed(ActionEvent e){ if(e.getSource() == collor){ } repaint(); } }

  • Javaプログラムの繋げ方について。

    Javaプログラムの繋げ方について。 今まで(1)のようなプログラムを書いていました。 作りたいものに向けて色々検索するとやりたいものに近い(2)のようなサンプルプログラムを見つけました。 しかし、Java初心者なもので混ぜ方(?)がわかりません。 現在の私の知識からいうと今までのはアプレットでフレーム使うのはアプリケーションなのかな?別物なのかな?そんな感じです。 もし、混ぜることができるなら何かアドバイスをお願いします。 (1)package test; import java.applet.* ; import java.awt.Label ; import java.awt.Font ; import static java.awt.Font.BOLD ; import java.util.*; import java.awt.Graphics; import java.awt.Image; import java.awt.*; public class test extends Applet{ public void paint(Graphics g){ g.setColor(Color.red); g.fillOval(320, 200, 100, 100); } public void init () { ~~~~~~~~~~~~~~~~ } public void start () { ------------ }}} (2)import java.awt.*; import java.awt.event.*; public class MouseEvent7 extends Frame { int posX = 50; int posY = 50; public static void main(String [] args){ new MouseEvent7(); } //コンストラクタ MouseEvent7(){ this.addWindowListener(new WinAdapter()); //ウィンドウリスナーの登録 this.setSize(200,200); this.setVisible(true); //MouseMotionListenerの登録 addMouseMotionListener( new MouseMotionAdapter(){ public void mouseMoved(MouseEvent e){ posX = e.getX(); posY = e.getY(); repaint(); //paintメソッドを実行 } } ); } public void paint(Graphics g){ g.drawOval(posX,posY,50,50); } } (1)の内容に本当に(2)のプログラムで出来るマウスの動きに合わせて円も動く+クリックしたらそこで止まるだけいいのですが。 出来たら止まった点の座標も取りたいですが、そこまではいってません;;

  • 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
  • Javaで四角をつくったのですが・・・

    とりあえずこの文をみてください。 import java.applet.Applet; import java.awt.*; public class Face extends Applet { public final static int step = 2; public final static int x0rg = 10; public final static int y0rg = 20; public void paint(Graphics g){ for(int i = 0; i < 3; i++) { for(int j = 0; j < 1; j++) { drawFace(g, x0rg + 18 * step * i, y0rg + 18 * step * j); } } drawFace(g, x0rg, y0rg); } void drawFace(Graphics g, int xStart, int yStart) { drawFrame(g, xStart, yStart); } void drawFrame(Graphics g, int xStart, int yStart) { g.drawRect(xStart, yStart, 16 * step, 16 * step); } } とこのような命令で四角を作ったとき、四角が三つ表示されるのですが、ここから一つ目(一番左の四角)の四角の二倍の大きさの箱を二つ目の四角に、さらに三つ目の四角はその二倍にしたいのですがどのようにすればできるのでしょうか?ようするに右にいくごとに二倍にしていきたいのです。 どうかお願いします。

    • ベストアンサー
    • Java
  • javaアプレットでのy=x^2のグラフ

    javaアプレットでy=x^2のグラフを描写したいのですが、現在の状態ではグラフの右側しか画面に現れません。軸の移動をすればよいと思うのですが、どのように修正すればよいのでしょうか? import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; public class test1 extends Applet{ public void paint(Graphics g){ g.setColor(Color.red); int x,yp=100,xp=0; for(x=0;x<200;x++){ int y=(int)(x*x)*(-1)+100; g.drawLine(xp,yp,x,y); xp = x; yp = y; } } }

  • アクションリスナー(初心者です)

    JAVAでボタンが押されたらすでに描かれている線に さらに線が加わって描かれるというプログラムを作ろうとしているのですが、アクションリスナーを受け取ったメソッドの中身をどうしたらいいのか行き詰まりました・・・作りかけのプログラムを載せてみますので アドバイスいただければと思います よろしくお願いします import java.applet.Applet; import java.awt.Graphics.*; import java.awt.event.*; import java.awt.*; public class file928 extends Applet implements ActionListener { Button botan; public void init() { botan=new Button("選択"); add(botan); botan.addActionListener(this); } public void paint(Graphics g) { g.drawString("L.A.Airport",100,300);           ~中略~ g.drawLine(405,420,655,240); } public void actionPerformed(ActionEvent x) { ーここをどうしたらいいかわかりません・・・ー } }

    • ベストアンサー
    • Java

専門家に質問してみよう