Хогл холст в javafxJAVA

Программисты JAVA общаются здесь
Anonymous
Хогл холст в javafx

Сообщение Anonymous »

У меня есть проблемы с получением Jogl Canvas/Panel на сцене Javafx. Мое предположение было, что если jogl glcanvas придерживается контракта на awt.canvas, не должно быть никаких проблем в размещении его в сцене JFX. и перемещать): < /p>

Код: Выделить всё

GLCanvas glCanvas = new GLCanvas();
glCanvas.setSize(size-10, size-10);
glCanvas.addGLEventListener(new GLEventListener() {
private final long t0 = System.currentTimeMillis();
@Override
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {}
@Override
public void init(GLAutoDrawable drawable) {
new Thread(() -> {while (true) glCanvas.display();}).start();
}
@Override
public void dispose(GLAutoDrawable drawable) {}
@Override
public void display(GLAutoDrawable drawable) {
GL4 gl = drawable.getGL().getGL4();
float t = (float)(Math.sin((System.currentTimeMillis()-t0)/1000f)+1)/2f;
gl.glClearColor(t, 1-t, 0, 1);
gl.glClear(GL4.GL_COLOR_BUFFER_BIT);
}
});

GLJPanel glPanel = new GLJPanel();
glPanel.add(glCanvas);
glPanel.setBackground(Color.BLUE);
< /code>

Альтернативный Hello World (без движения, это ясно работает): < /p>

Canvas awtCanvas = new Canvas() {
@Override
public void paint(Graphics g) {g.fillRect(0, 0, getWidth(), getHeight());}
};
awtCanvas.setSize(size-10, size-10);

JPanel swingPanel = new JPanel();
swingPanel.add(awtCanvas);
swingPanel.setBackground(Color.BLUE);
< /code>

и тестовый код Сопровожение вещи вместе: < /p>

if (jfx) {
SwingNode swingNode = new SwingNode();
swingNode.setContent(swingPanel);
primaryStage.setScene(new Scene(new Group(swingNode), size, size+30));
primaryStage.show();
} else {
JFrame frame = new JFrame();
frame.setSize(size, size+30);
frame.add(swingPanel);
frame.setVisible(true);
}
Справочные решения jframe (panel (canvas ())) , jframe (jpanel (glcanvas ())) и jframe (gljpanel (glcanvas ()) и jframe (gljpanel (glcanvas ()) , как ожидается (сорта, glpAn (em> glpAn (em> glp Настройка). < /p>

Когда я пробую не Jogl warpper stage (сцена (группа (jpanel (canvas ()))) < /em>, работает как ожидалось (JFX работает). < /p>

stage (сцена (группа (jpanel (gljpanel (glcanvas ()))) производит черное, где должно быть содержание холста. />
Единственные упоминания, которые я обнаружил в Интернете, - это с 2012/2013, где, кажется, он не работает (но, кажется, также не существует в то время Swingnod>

Подробнее здесь: https://stackoverflow.com/questions/527 ... -in-javafx

Вернуться в «JAVA»