Day 23(9/1) sleep, windowClosing

2016. 9. 1. 17:09Programming/Java

**오늘 배운 내용**

1) sleep

2) windowClosing



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.ArrayList;
import java.util.List;
 
//implements Runnable: Thread 생성하는 다른 방법
//다중 상속 가능하므로 Thread보다 많이 쓰임
class RunnableDemo implements Runnable{
     int seq;
     public RunnableDemo(int seq){
          this.seq=seq;
     }
 
@Override
    public void run() {
        System.out.println(seq+"thread start");
    try{
       Thread.sleep(3000); //throws (예외) : 예외처리 강제 
    }catch(InterruptedException e){e.printStackTrace();} //printStackTrace: 에러 떴는지 확인용?
    System.out.println(seq+"thread end");
   }
}
 
public class L03Runnable {
     public static void main(String[] args) {
  
//L02ThreadSleep과 똑같이 동작하도록 해라!
    List<Object> threads = new ArrayList<Object>();
  
    for(int i=0;i<10;i++){
    Thread t = new Thread(new RunnableDemo(i)); //thread는 애시당초 Runnable을 받을 수 있게 돼있음+start는 run() 포함
    t.start();
    threads.add(t);
 
   //join은 모든 쓰레드가 종료되면 main이 종료되게 하는 메소드
   //모든 쓰레드가 실행되고 나서 join해야 한다.
   //문제: main end가 제일 마지막에 실행되게 하세요(for 문 밖에서 join을 시도하세요)
    }
    for(int i=0; i<threads.size(); i++){
    try{
        ((Thread) threads.get(i)).join();
    }catch(InterruptedException e){e.printStackTrace();}
  }
  System.out.println("main end");
 }
}
cs




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.awt.Frame;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
 
public class L01Frame{
     public static void main(String[] args) {
     Frame f = new Frame("awt 수업");
         f.setSize(500,300);
         f.setVisible(true);
         f.addWindowListener(new WindowListener() {
   
   @Override
   public void windowOpened(WindowEvent e) {
   }
   @Override
   public void windowIconified(WindowEvent e) {
   }
   @Override
   public void windowDeiconified(WindowEvent e) {
   }
   @Override
   public void windowDeactivated(WindowEvent e) {
   }
   @Override
   public void windowClosing(WindowEvent e) {
    e.getWindow().dispose();
   }
   @Override
   public void windowClosed(WindowEvent e) {
   }
   @Override
   public void windowActivated(WindowEvent e) {
   }
  });
 }
}
cs


'Programming > Java' 카테고리의 다른 글

쉬운 예제  (0) 2016.09.04
JAVA 개념 간단 정리  (0) 2016.09.04
Day 22(8/31) Thread, sleep  (0) 2016.09.01
Day 21(8/30) InnerClass, Frame, EventHandler  (0) 2016.09.01
Day 20(8/29) Read(입력 받기)  (0) 2016.08.29