是否可以在Jtable单元格上使用JOGL GLCanvas?

时间:2017-05-05 08:35:32

标签: swing jtable jogl tablecellrenderer glcanvas

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

0 个答案:

没有答案