게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 AWT 질문좀요 ㅜㅜ
게시물ID : programmer_921짧은주소 복사하기
작성자 : 글냥이
추천 : 0
조회수 : 461회
댓글수 : 0개
등록시간 : 2014/01/30 16:36:58
밑에 코드에서 f.repaint()를 호출하든 안하든 똑같은 결과가 나오는데요...
repaint()를 호출 안해도 제대로 출력되는 이유가... 
걍 자동적으로 repaint()가 호출되서 그런건가요?

책에서 
AWT쓰레드에 의해 자동적으로 화면이 갱신되는 상황은
1. 처음 화면에 나타날 때
2. 다른 화면에 가려져 있던 부분이 다시 화면에 나타날 때
3. 아이콘화 되어 있다가 원래 크기로 화면에 나타날 때
라고 되어있는데요, Frame의 타이틀(여기서는 시간이죠)이 바뀌는게 저 3가지에 들어가지는 않는거같아서요..



/* 
 * 타이틀 바에 현재 시간을 출력하는 시계를 작성하는 예제입니당. 
 * 쓰레드를 이용해서 1초마다 변경되도록 할거에요. 
 * SimpleDateFormat을 사용할거에요. 
 */
 

import java.text.SimpleDateFormat; 
import java.util.*; 
import java.awt.*; 
import java.awt.event.*; 

public class Boogi6 { 
    Frame f = null
    SimpleDateFormat sdf = null
    Date d = null
     
    public static void main(String[] args) { 
        Boogi6 boogi6 = new Boogi6(); 
        boogi6.go(); 
    } 
     
    public void go() { 
        d = new Date(); 
        sdf = new SimpleDateFormat("hh:mm:ss a"); 
        f = new Frame(sdf.format(d)); 
        f.addWindowListener(new WindowAdapter() { 
            public void windowClosing(WindowEvent we) { 
                System.exit(0); 
            } 
        }); 
         
        f.setLocation(400,300); 
        f.setSize(50050); 
        f.setVisible(true); 
         
        Runnable r = new MyRunnable(); 
        Thread t = new Thread(r); 
        t.start(); 
    } 
     
    class MyRunnable implements Runnable { 
        public void run() { 
            while(true) { 
                d = new Date(); 
                f.setTitle(sdf.format(d)); 
                //f.repaint(); 
                try { 
                    Thread.currentThread().sleep(100); 
                } catch(InterruptedException e) {} 
            } 
        } 
    } 
}
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호