こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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点がわかりません;
よろしければ、アドバイスお願い致します!

投稿日時 - 2009-01-29 18:13:26

QNo.4671743

すぐに回答ほしいです

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

>・これを組み込むのはpublic void init(){の後で良いか
addMouseListener(new MouseListener(){ かな。
Press、Click、Enter、Exit、Releaseも記述しないとエラーになるので注意。

>・……の部分に何を書けばいいのか
フラグON/OFFの切り替えですかね。

あと

フラグの定義



public void run(){
while(!Thread.interrupted()){
for(x=600;x>-300;x=x-5){
repaint();
try{
フラグがONの間(while(フラグ)みたいな)
Thread.sleep(50);
}

catch(InterruptedException e){}
}
}
}

これで(一応)動くと思います。

投稿日時 - 2009-01-30 10:44:13

お礼

ご丁寧なアドバイスありがとうございます!
ですが…「フラグ」というものが何かわからず、
どのようにON/OFFを切り替えるのかが分かりません;
重ね重ね申し訳ないです。

投稿日時 - 2009-01-30 16:35:13

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

たとえばですが

boolean flag = false;

↑みたいな変数を作成し、マウスクリック時に
flag = trueならばfalseに
falseならばtrueに変更する。

まあ、flag = !flagって書くだけですが。

で、

>フラグがONの間(while(フラグ)みたいな)

while(flag)Thread.sleep(50);

とする。

投稿日時 - 2009-01-30 17:46:32

お礼

再びありがとうございました…!
教えて頂いたもので試してみます!
本当にありがとうございました!

投稿日時 - 2009-01-31 20:53:56

あなたにオススメの質問