혹시 관심있으면 번역해주세요..


조경민  KVM
오후 3:10 2000/11/10
Simple Spotlet 해석
=================================================================
참고 문헌
http://webdev.apl.jhu.edu/~rbe/kvm/tutorial/SimpleSpotlet.html



// works on Preview and EAv0.1 versions
import com.sun.kjava.*;

/** Most basic of all examples, we extend a Spotlet, and merely draw
*  some text on the screen.  Note that there is no event handling of
*  any kind, including exiting the Spotlet.
*/
public class SimpleSpotlet extends Spotlet {
    
    // handle on the singleton Graphics object
    static Graphics g = Graphics.getGraphics();
    
    /**
     * The main method simply creates a Scribble spotlet and
     * registers its event handlers.
     */
    public static void main(String[] args) {
        SimpleSpotlet testSpotlet = new SimpleSpotlet();
        testSpotlet.register(NO_EVENT_OPTIONS);
    }
    
    /**
     * Default constructor creates the GUI components and draws them.
     */
    public SimpleSpotlet() {
        // paint the text
        paint();
    }
    
    /**
     * Draw the screen
     */
    private void paint() {
        g.clearScreen();
        g.drawString("Simple Spotlet",60, 80);
    }
}

======
1. Spotlet 클래스는 이벤트를 핸들링하는 콜백을 제공하며,
    애플리케이션은 이를 상속받고 이벤트 함수를 오버라이드한다.
    한 애플리케이션은 하나 이상의 스포트릿 객체를 사용할수 있으며
    대부분 하나의 소프트릿가 어떤 순간에 포커스를 갖을 수 있다.
    즉, 이벤트는 오직 어떤 주어진 순간에 현재 포커스가 있는
    한 스포트릿의 콜백을 부르게 된다.
    포커스를 얻기 위해서는 스포트릿에서 레지스터 함수를 호출하는데
    이때 전에 만일 포커스가 있는 레지스터된 스포트릿이 있다면
    그의 포커스를 없앤다.

public class SimpleSpotlet extends Spotlet {
...    
    public static void main(String[] args) {
        SimpleSpotlet testSpotlet = new SimpleSpotlet();
        testSpotlet.register(NO_EVENT_OPTIONS);
    }


  2. register(int) 함수를 이용해서 위의 객체의 이벤트 핸들러를
     등록하고 있다. 이 등록은 스포트릿에게 이벤트 핸들링을 받기위한
     포커스를 주는 수단이 된다. 부수적인 효과로 이를 통해서 모든
     전에 등록된 핸들러가 있다면 이들은 모두 unregister가 되며
     전의 스포트릿은 포커스를 잃게 된다.

     register(int) 안의 인자로 NO_EVENT_OPTIONS or WANT_SYSTEM_KEYS
     를 쓸수 있다.

   3. 마지막으로, Hello World를 스포트릿의 paint함수를 오버라이드 함
      으로써 화면에 뿌려주었다.

    public SimpleSpotlet() {
        paint();
    }
    
    private void paint() {
        g.clearScreen();
        g.drawString("Simple Spotlet",60, 80);
    }

     위 블럭문에서 세가지 주의해서 볼점이 있다.
     - 생성자에서 paint()를 콜함으로써 초기화를 해야 한다.
     - pain()는 Standard JVM 처럼 그래픽 컨택스트(graphics context)를
       넘겨받지 않는다. 그 대신 오직 단 하나의 그래픽 컨택스트를
       시스템으로 부터 받아서 쓰고 있다. Graphics.getGraphics()를 해서
       받을수 있다.
     - paint함수 수행도중 화면을 지우고 싶다면 임의로 화면을 지울수
       있다.


      









    



'KB > 기타' 카테고리의 다른 글

MySQL.doc  (0) 2004.03.19
MyODBC 설치하기  (0) 2004.03.19
Jakarta_jsp_javabeans  (0) 2004.03.19
조경민 Visual J++ 에서 JDK 1.3 잘 사용하기  (0) 2004.03.19
java 1.3 실행하기  (0) 2004.03.19

+ Recent posts