Hi,
I try to convert my GLAnimCanvas to a GLAnimJPanel because I need to have a swing component in my application and not an AWT component…
My GLAnimCanvas worked perfectly… Now I do not arrrive to get the same with a GLAnimJPanel… All I have is a big black screen…
I also tried with an example of GLAnimJPanel I found and it works correctly… I do not know what is wrong in my code:
import java.awt.;
import java.awt.event.;
import java.util.;
import gl4java.GLContext;
//import gl4java.awt.GLAnimCanvas;
import gl4java.swing.GLAnimJPanel;
import gl4java.;
public class BarChart extends GLAnimJPanel {
int NumberOfGraduation;
int Indice;
public BarChart(int w, int h,int numberOfGraduation,int indice) {
super();
//super(w,h);
setAnimateFps(60.0f);
NumberOfGraduation = numberOfGraduation;
Indice = indice;
}
public void reshape(int width, int height){
gl.glViewport(0,0,width,height);
gl.glMatrixMode(GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrtho(-1.0f,1.0f,-1.0f,1.0f,1.0f,10.0f);
gl.glMatrixMode(GL_MODELVIEW);
gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
gl.glLoadIdentity();
}
public void init() {
gl.glShadeModel(GL_SMOOTH);
gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
gl.glClearDepth(1.0f);
gl.glEnable(GL_DEPTH_TEST);
gl.glDepthFunc(GL_LEQUAL);
gl.glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
}
public void DrawGLScene(){
gl.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
gl.glTranslatef(-1.0f, -1.0f,-2.0f);
float y_Value = 2.0f/NumberOfGraduation;
float parity = NumberOfGraduation/2.0f;
if(Indice != 1){
for (int i=1; i <= NumberOfGraduation;i++){
gl.glBegin(GL_QUADS);
if (i == 1) gl.glColor3f(0.0f,0.0f,0.4f);
else if (i == NumberOfGraduation) gl.glColor3f(0.85f,0.0f,0.0f);
else if (i != 1 | | i!= NumberOfGraduation ){
if (String.valueOf(parity).endsWith("5")) {
if(i == (NumberOfGraduation-3)) gl.glColor3f(1.0f,1.0f,0.0f);
if(i == 4) gl.glColor3f(0.0f,0.4f,0.0f);
if(i == (NumberOfGraduation-2)) gl.glColor3f(1.0f,0.5f,0.0f);
if(i == 3) gl.glColor3f(0.0f,0.0f,1.0f);
if(i == (NumberOfGraduation-1)) gl.glColor3f(1.0f,0.0f,0.0f);
if(i == 2) gl.glColor3f(0.0f,0.0f,0.7f);
if(i == (NumberOfGraduation/2.0f)+0.5) gl.glColor3f(0.0f,0.6f,0.0f);
}
else if (String.valueOf(parity).endsWith("0")) {
if(i == (NumberOfGraduation-3)) gl.glColor3f(1.0f,1.0f,0.0f);
if(i == 4) gl.glColor3f(0.0f,0.4f,0.0f);
if(i == (NumberOfGraduation-2)) gl.glColor3f(1.0f,0.5f,0.0f);
if(i == 3) gl.glColor3f(0.0f,0.0f,1.0f);
if(i == (NumberOfGraduation-1)) gl.glColor3f(1.0f,0.0f,0.0f);
if(i == 2) gl.glColor3f(0.0f,0.0f,0.7f);
if(i == (NumberOfGraduation/2.0f)) gl.glColor3f(0.0f,0.6f,0.0f);
}
}
gl.glVertex3f(0.0f,y_Value,0.0f);
gl.glVertex3f(2.0f,y_Value,0.0f);
gl.glVertex3f(2.0f,0.0f,0.0f);
gl.glVertex3f(0.0f,0.0f,0.0f); // End of the quad
gl.glEnd();
gl.glFlush();
gl.glTranslatef(0.0f, y_Value,0.0f);
}
}
else if(Indice ==1){
for (int i=1; i <= NumberOfGraduation;i++){
gl.glBegin(GL_QUADS);
if (i == 1) gl.glColor3f(0.0f,0.0f,1.0f);
else if (i == NumberOfGraduation) gl.glColor3f(0.0f,0.0f,0.2f);
else if (i != 1 | | i!= NumberOfGraduation ){
if(i == (NumberOfGraduation-1)) gl.glColor3f(0.0f,0.0f,0.3f);
else if(i == (NumberOfGraduation-2)) gl.glColor3f(0.0f,0.0f,0.4f);
else if(i == (NumberOfGraduation-3)) gl.glColor3f(0.0f,0.0f,0.5f);
else if(i == (NumberOfGraduation-4)) gl.glColor3f(0.0f,0.0f,0.6f);
else if(i == (NumberOfGraduation-5)) gl.glColor3f(0.0f,0.0f,0.7f);
else if(i == (NumberOfGraduation-6)) gl.glColor3f(0.0f,0.0f,0.8f);
else if(i == (NumberOfGraduation-7)) gl.glColor3f(0.0f,0.0f,0.9f);
}
gl.glVertex3f(0.0f,y_Value,0.0f);
gl.glVertex3f(2.0f,y_Value,0.0f);
gl.glVertex3f(2.0f,0.0f,0.0f);
gl.glVertex3f(0.0f,0.0f,0.0f);
gl.glEnd();
gl.glFlush();
gl.glTranslatef(0.0f, y_Value,0.0f);
}
}
else System.out.println("ERROR: In BarChart.java wrong Indice number in DrawGLScene");
gl.glFlush();
gl.glLoadIdentity();
}
public void setNumberOfGraduation(int numberOfGraduation){
NumberOfGraduation = numberOfGraduation;
}
public void setIndice(int indice){
Indice = indice;
}
public void display() {
glj.gljMakeCurrent(); //Ensure GL is initialised correctly
DrawGLScene();
glj.gljSwap(); //Swap buffers
glj.gljFree(); // release GL
glj.gljCheckGL();
}
}
Thanks a lot for your help
Mathieu