일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 낙동강
- iPhone
- Flex3.0
- 리컴번트삼륜
- 미국자전거길
- 사랑
- KT
- 리컴번트삼륜자전거
- 세계여행
- 자전거
- 북아메리카(북미)
- 삼륜자전거
- 자전거과학
- 아이폰
- 미국
- amsterdam
- Maxcruz
- 국내여행
- 세월호참사
- 샌프란시스코
- 암스테르담
- 낙동강 종주
- 리컴번트자전거
- IT·컴퓨터
- 보청기
- 국토종주
- FlashDevelop
- CenturyRide
- 자전거길
- 자전거여행
- Today
- Total
지구별에서 - Things Old and New
Swing 을 사용하는 Jogl 코드의 해설 본문
Swing 을 사용하는 Jogl 코드의 해설
Swing 을 사용하는 Jogl 코드라고는 하지만 Swing 과 Jogl 의 통합이 아니라 Swing(lightweight component) 와 Awt(heavyweight component)의 통합이라는 표현이 합당할 것이다. Awt 는 스크린에 직접 접근할 수 있으나 Swing 은 오직 상위계층인 awt 의 네이트브 리소스를 통해서만 스크린에 접근할 수 있다. 이런 연유로 Awt 는 중량급 컴포넌트, Swing 은 스크린의 네이티브 리소스를 거니리지 않는 경량급 컴포넌트라 부른다. 어것은 아래의 클래스 계층구조를 보면 잘 알 수 있다.
javax.swing |
위에서 보듯이 JFrame은 awt의 Frame의 하위 클래스로 Frame과 그 상위 awt 컴포넌트의 메쏘드를 빌려 네이티브 스크린 리소스에 접근하는 구조를 갖고 있다.
awt 와 Swing 의 다른점은
첫째는 awt의 Frame을 썼을 때에 사용한
JoglFrame frame = new JoglFrame ();
frame.setVisible(true);
에 해당하는 부분이
final JoglJFrame app = new JoglJFrame();
SwingUtilities.invokeLater (new Runnable() {public void run() {app.setVisible(true);}});
로서 window 가 update 될 때에도 다시 보이도록 한다.
둘째는 awt의 Frame을 썼을 때에 사용한
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
if (anim != null) anim.stop();
System.exit(0);
}
에 24째 줄의
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
로 바꿔 주는 것이다.
나머지 것은 거의 awt 의 컴포넌트를 쓰는 방식과 대동 소이함으로 생략한다.
경량급 컴포넌트(Swing)와 중량급 컴포넌트(Awt) 섞어쓰기에 관해서는
http://java.sun.com/products/jfc/tsc/articles/mixing/
를 참조하고
JFrame의 구조에 대해서는 아래의 참고 문헌
http://www.cc.gatech.edu/classes/cs4812_99_winter/swing/sld014.htm
을 참조하기 바란다.
'IT > JOGL(Java OpenGL)' 카테고리의 다른 글
왜 도둑질이 나쁜가? (4) | 2005.12.27 |
---|---|
인터넷은 쓰레기인가? (2) | 2005.12.25 |
Jogl에서 KeyEvent 쓰는 법 (0) | 2005.12.06 |
Jogl에서 MouseEvent 쓰는 법 (0) | 2005.12.05 |
Jogl을 JApplet 에 담는 법 (0) | 2005.12.04 |
Jogl을 Applet에 담는 법 (0) | 2005.12.03 |
Jogl 과 Swing (0) | 2005.12.01 |
JOGL (0) | 2005.12.01 |