Можно ли использовать JOGL GLCanvas на ячейках Jtable?

Я пытаюсь создать JTable, содержащий JOGL GLCanvas или GLJPanel в ячейках таблицы.

Я определяю пользовательский рендерер ячеек таблицы, который наследуется от GLJPanel, и вызываю addGLEventListener для определения моего пользовательского рисования в методе отображения (на данный момент я пытаюсь нарисовать то же самое в каждой ячейке). Я определяю getTableCellRendererComponent, который возвращает саму пользовательскую таблицу.

Вот мой код рендерера клеток:

private static class GLCellRenderer extends GLJPanel implements TableCellRenderer {
    private String value;
    private Color color;

    public GLCellRenderer () {
        super(new GLCapabilities(GLProfile.getDefault()));

        addGLEventListener( new GLEventListener() {

            @Override
            public void init( GLAutoDrawable glautodrawable ) {}

            @Override
            public void dispose( GLAutoDrawable glautodrawable ) {}

            @Override
            public void display( GLAutoDrawable glautodrawable ) {
                GL2 gl = glautodrawable.getGL().getGL2();
                gl.glClearColor(1, 0, 0, 1);
                gl.glClear(GL.GL_COLOR_BUFFER_BIT);
            }
        });            
    }

    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row,int column) {          
        return this;
    }
}

А вот мой код для применения средства визуализации ячеек к таблице:

JTable table = new JTable(model);
table.setDefaultRenderer(Data.class, new GLCellRenderer());

При запуске у меня есть таблица с белыми клетками, когда я ожидаю красных клеток.

Можно ли использовать GLCanvas или GLJpanel для ячейки таблицы?

0 ответов

Другие вопросы по тегам