同じプロジェクトの方が勉強して、サンプルソースを下さったので有難く使わせてもらいます。
ただ、単なるパクリでは力にならないので、勉強してみる。
まず、
「OpenGLを使ってJavaでも3Dを楽しもう」第3回 プログラムで3Dを表示する
を見ながらJOGLの窓だけ開くコードを勉強する。
次に、貰ったサンプルとのANDをとって、骨組みだけ残してみる。
すると、こうなる。
Gl_Simple.java(JOGLの方)
package fx_testSample0;
/*
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
*/
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLEventListener;
//import javax.media.opengl.GLCanvas;
public class Gl_Simple implements GLEventListener{
public Gl_Simple() {
/*
Frame frame = new Frame("Simple Cube");
// 3Dを描画するコンポーネント
GLCanvas canvas = new GLCanvas();
canvas.addGLEventListener(this);
frame.add(canvas);
frame.setSize(300, 300);
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setVisible(true);
*/
}
public void init(GLAutoDrawable drawable) {
// 初期化処理
}
public void reshape(GLAutoDrawable drawable,
int x, int y,
int width, int height) {
// 描画領域変更処理
}
public void display(GLAutoDrawable drawable) {
// 描画処理
}
public void displayChanged(GLAutoDrawable drawable,
boolean modeChanged,
boolean deviceChanged) {}
}
Frame部分がごっそり抜ける。で、このFrame部分をJavaFXにしてしまえばいいって事らしい。Fx_Simple.fx
package fx_testSample0;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javax.media.opengl.GLJPanel;
import fx_testSample0.Gl_Simple;
import javafx.ext.swing.SwingComponent;
var panel:GLJPanel = new GLJPanel();
panel.addGLEventListener(new Gl_Simple());
var swingComp:SwingComponent = SwingComponent.wrap(panel);{
swingComp.height = 300;
swingComp.width = 300;
}
Stage {
title : "SimpleFrame"
scene: Scene {
width: 300
height: 300
content: [
swingComp
]
}
}
まだ JavaFX も勉強途中。JOGL も勉強途中。Java の Swing も勉強と(ry先は長そうです。