import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;


class MyLabel extends JLabel{
 public int timing;
 public int bkTiming;


 //눈 속도조절
 public MyLabel(){
  super("0");
  this.timing = ((int)(Math.random()*40000))+20000;
  this.bkTiming = timing;
  this.setSize(15,20);
  this.setLocation((int)(Math.random()*500),(int)(Math.random()*400)
    );
 }

}
//피하는 주체 이미지 조절
public class Exam01  extends JFrame{

 private ImageIcon imgIcon = new ImageIcon("C:\\Download\\sd.PNG ");
 private Image img = imgIcon.getImage();
 private Image scaledImg = img.getScaledInstance(70,80, java.awt.Image.SCALE_SMOOTH);
 private JButton button = new JButton(new ImageIcon(scaledImg));
 private JTextArea point = new JTextArea("점수: ");
 private JPanel panel = new JPanel();
 

 //눈 집약도
 private MyLabel[] labels = new MyLabel[]{
   new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),
   new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),
   new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),
   new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),
   new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),
   new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),
   new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),
   new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),new MyLabel(),

 };
 //awsd따라 주체가 움직임
 private void eventInit(){
  this.button.addKeyListener(new KeyAdapter(){

   @Override
   public void keyPressed(KeyEvent e) {
    if(e.getKeyChar() == 'a'){
     button.setLocation(button.getX()-3, button.getY());
    }
    else if(e.getKeyChar()=='d'){
     button.setLocation(button.getX()+3, button.getY());
    }
    else if(e.getKeyChar()=='w'){
     button.setLocation(button.getX(), button.getY()-3);
    }
    else if(e.getKeyChar()=='s'){
     button.setLocation(button.getX(), button.getY()+3);
    }
   }
  });
 }
 //점수 노출 -> 왜 안나오지???
 private void compInit3(){
  panel.add(point);
  this.add(panel);
 }

 

 //주체의 크기조정
 private void compInit2(){
  this.add(button);
  button.setBounds(30,30,30,30);
 }
 //눈을 tmp에 따라 계속 for문으로 돌림
 private void compInit(){
  

  for(MyLabel tmp: labels){
   this.add(tmp);
  }
  //쓰레드를 활용하여 눈 내리는 동작
  Thread th = new Thread(){
   public void run(){
    int i =0;
    while(true){
     for(MyLabel tmp: labels){
      if(tmp.timing-- == 0){
       tmp.setLocation(tmp.getX(),tmp.getY()+1);
       if(tmp.getY() > 350){
        tmp.setLocation((int)(Math.random()*500),0);
       }
       else if(tmp.getY() == 349){   //점수계산
        i++;
        System.out.println(i);  //점수계산  노출


       }
       //만약 주체와 눈의 좌표값이 일치하면 게임종료
       if(button.getLocation().equals(tmp.getLocation())){
        System.out.println("게임종료");
        System.exit(0);

       }

       tmp.timing = tmp.bkTiming;
      }
     }
    }
   }

  };th.start();
 }
 public Exam01(){
  super("눈피하기 게임");
  this.setLayout(new FlowLayout());
  this.setSize(500, 400);
  this.setLayout(null);
  this.setLocationRelativeTo(null);
  this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  this.compInit();
  this.compInit2();
     this.compInit3();
  this.eventInit();
  this.setVisible(true);
 }


 
 public static void main(String[] ar){
  new Exam01();
 }
}


1. 점수영역 노출되게 하려하는데 왜안나오죠??

2. 저 움직이는애를 하단영역에 고정시키고 싶은데 어떻게 하죠 ㅡㅡ?