我正在尝试在表格的单元格上创建一个包含 JOGL GLCanvas 或 GLJPanel 的 JTable。
我定义了一个从 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?