import java.applet.*; import java.awt.*; import java.awt.image.*; import java.awt.event.*; public class hoshi extends Applet implements AdjustmentListener,Runnable { Label ltkei = new Label("星の大きさ",Label.CENTER); Label ltsuu = new Label("星の数",Label.CENTER); Label ltiro = new Label("星の色",Label.CENTER); Label lkei = new Label("",Label.CENTER); Label lsuu = new Label("",Label.CENTER); Label liro = new Label("",Label.CENTER); Scrollbar skei = new Scrollbar(Scrollbar.HORIZONTAL,30,10,1,60); Scrollbar ssuu = new Scrollbar(Scrollbar.HORIZONTAL,60,10,1,210); Scrollbar siro = new Scrollbar(Scrollbar.HORIZONTAL,50,10,1,110); Panel p; Image img,imgw; Graphics gw; Thread th; int kei =30; int suu =60; float iro =50f/100f; int w = 0; int h = 0; int n =200; int s[] = new int[n]; //星のサイズ int x[] = new int[n]; //星の位置x int y[] = new int[n]; //星の位置y float hue[] = new float[n]; //星の色相 public void init(){ p = new Panel(); p.setLayout(new GridLayout(3,3)); p.add(ltkei); p.add(ltsuu); p.add(ltiro); p.add(skei); p.add(ssuu); p.add(siro); p.add(lkei); p.add(lsuu); p.add(liro); setLayout(new BorderLayout()); add ("South",p); skei.addAdjustmentListener(this); ssuu.addAdjustmentListener(this); siro.addAdjustmentListener(this); lkei.setText(""+kei); lsuu.setText(""+suu); liro.setText("Hue "+iro); w=getSize().width; h=getSize().height; imgw = createImage(w,h);gw = imgw.getGraphics(); img = getImage(getDocumentBase(),"hoshi.jpg"); } public void start() { //アプレットの開始 th = new Thread(this); //スレッドの開始 th.start(); } public void stop() {th = null;} //スレッドの終了 public void paint(Graphics g) { gw.drawImage(img,0,0,this); for(int i=0;i0){ for(int j=s[i];j>0;j--){ //外側から内側に向かって明るくする gw.setColor(Color.getHSBColor(hue[i],1f,(float)(s[i]-j)/s[i])); gw.drawLine(x[i] ,y[i]-j,x[i] ,y[i]+j); //十字の描画 gw.drawLine(x[i]-j,y[i] ,x[i]+j,y[i] ); } s[i]--; //星のサイズを小さくする } } g.drawImage(imgw,0,0,this); } public void run() { //スレッドの実行 System.out.println("run"); while (th !=null) { str(); try {th.sleep(50);} catch (InterruptedException e){} repaint(); } } public void update(Graphics g) {paint(g);} //再描画 void str(){ //星の作成 for (int i=0;i