0

我正在尝试在表格的单元格上创建一个包含 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?

4

0 回答 0