プロが教える店舗&オフィスのセキュリティ対策術

Appletで
円が徐々に大きくなる。
一定の直径を超えるたびに色が変わる。
最大まで大きくなったら、縮んで色を変えながらもとの大きさに戻る。
というのを延々繰り返すものを作りました。

コードは以下です。
import java.applet.*;
import java.awt.*;
import java.awt.Color;


public class project4 extends Applet implements Runnable{

int x;
Thread th;

public void start(){
th = new Thread(this);
th.start();
}


public void run(){

while(1==1) {
for (x =0; x<=180; ++x)
{
repaint();
try{
Thread.sleep(100);
}
catch( InterruptedException e){
}
}

for (; x>=0; --x)
{
repaint();
try{
Thread.sleep(100);
}
catch( InterruptedException e){
}
}
}
}
public void paint (Graphics g){
if (x<=18)
{g.setColor(Color.blue);
}
g.fillOval(150,150,20+x,20+x);


if ((x >18) && (x<=36))
{g.setColor(Color.darkGray);
}
g.fillOval(150,150,20+x,20+x);

if ((x >36) && (x<=54))
{g.setColor(Color.yellow);
}
g.fillOval(150,150,20+x,20+x);

if ((x >54) && (x<=72))
{g.setColor(Color.green);
}
g.fillOval(150,150,20+x,20+x);

if ((x >72) && (x<=90))
{g.setColor(Color.orange);
}
g.fillOval(150,150,20+x,20+x);

if ((x >90) && (x<=108))
{g.setColor(Color.red);
}
g.fillOval(150,150,20+x,20+x);

if ((x >72) && (x<=108))
{g.setColor(Color.yellow);
}
g.fillOval(150,150,20+x,20+x);

if ((x >108) && (x<=126))
{g.setColor(Color.magenta);
}
g.fillOval(150,150,20+x,20+x);

if ((x >126) && (x<=144))
{g.setColor(Color.orange);
}
g.fillOval(150,150,20+x,20+x);

if ((x >144) && (x<=162))
{g.setColor(Color.cyan);
}
g.fillOval(150,150,20+x,20+x);

if ((x >162) && (x<=180))
{g.setColor(Color.pink);
}
g.fillOval(150,150,20+x,20+x);
}


}

ここに ボタンを押したら、円の動きがとまる
というeventを増やしたいのですが、どうすればよいかアドバイスをいただけませんか。ボタンを使うにはActionListenerを実装しなければならないと思うのですがRunnableと共存はできますか?

A 回答 (1件)

>eventを増やしたい


extendsは単一継承ですが、インターフェースは複数同時継承できます。

public class project4 extends Applet implements Runnable, ActionListener{
のように「,」で繋いでインタフェースクラスを複数記述します。
あとは必要なメソッドを記述
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!