관리 메뉴

지구별에서 - Things Old and New

Jogl을 JApplet 에 담는 법 본문

IT/JOGL(Java OpenGL)

Jogl을 JApplet 에 담는 법

샛솔 2005. 12. 4. 07:06

Jogl을 JApplet 에 담는 법

jogl 페이지를 JApplet 에 담는법을 설명한다.  이번에는 조금 복잡한 jogl 페이지를 JApplet 에 담아 본다.  제 11~12강좌에서 다루었던 보기를 JApplet 으로 만들어 본다.

JApplet의 자식 클래스로 JoglJApplet을 아래와 같이 작성한다.  이것은 AWT의 Applet 작성법과 크게 다른지 않다.  17째 줄에 사용한 JoglRender는 AWT의 JoglDisplay에 해당하는 것으로 GLEventListener를 임프리멘트하는 클래스로 Swing 컴포넌트를 사용한다는 점을 구별하기 위해서 그렇게 쓰기로 한다.  같은 내용을 JApplet 로 바꾸는 것이기 때문에 11째 강좌에서 사용한 클래스 정의를 그대로 변동없이 사용한다.  따라서 따로 이곳에 나열하지 않는다.  11째 강좌에 나열한 것을 참조하기 바란다.

 

  1. import java.awt.*;
  2. import java.awt.event.ActionEvent;
  3. import java.awt.event.ActionListener;
  4. import javax.swing.ButtonGroup;
  5. import javax.swing.JApplet;
  6. import javax.swing.JPanel;
  7. import javax.swing.JRadioButton;
  8. import net.java.games.jogl.*;
  9. @SuppressWarnings("serial")
  10. public class JoglJApplet extends JApplet implements ActionListener {
  11.         static int WIDTH = 500,  HEIGHT = 300 ;
  12.         GLCanvas canvas;
  13.         JoglRender listener ;
  14.                 
  15.           public void init() {
  16.             GLCapabilities glc = new GLCapabilities();
  17.             canvas = GLDrawableFactory.getFactory().createGLCanvas(glc);
  18.             add(canvas, BorderLayout.CENTER);
  19.             listener = new JoglRender();
  20.                 canvas.addGLEventListener(listener);
  21.                 
  22.                 JPanel jp = new JPanel();
  23.                 ButtonGroup bg = new ButtonGroup();
  24.                 JRadioButton jrb1 = new JRadioButton("Sine", true);
  25.                 jrb1.setActionCommand("sine");
  26.                 jrb1.addActionListener(this);
  27.                 JRadioButton jrb2 = new JRadioButton("Cosine");
  28.                 jrb2.setActionCommand("cosine");
  29.                 jrb2.addActionListener(this);
  30.                 JRadioButton jrb3 = new JRadioButton("Tangent");
  31.                 jrb3.setActionCommand("tangent");
  32.                 jrb3.addActionListener(this);
  33.                 bg.add( jrb1 );
  34.                 bg.add( jrb2 );
  35.                 bg.add( jrb3 );
  36.                 jp.add( jrb1 );
  37.                 jp.add( jrb2 );
  38.                 jp.add( jrb3 );
  39.                 add(jp, BorderLayout.SOUTH);
  40.                 setSize(WIDTH, HEIGHT);
  41.                 }
  42.           
  43.           public void actionPerformed(ActionEvent ae) {
  44.                   listener.whatToDraw = ae.getActionCommand();
  45.                   canvas.repaint();
  46.                   }
  47.                   
  48.         }

 이 코드를 컴파일하고 실행시켜 보기 바란다.  여기를 열면 그 결과를 볼 수 있다.

'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을 Applet에 담는 법  (0) 2005.12.03
Swing 을 사용하는 Jogl 코드의 해설  (0) 2005.12.02
Jogl 과 Swing  (0) 2005.12.01
JOGL  (0) 2005.12.01
Comments