Можно ли использовать 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 для ячейки таблицы?