как я могу избавиться от этого дополнительного черного пространства в opengl

#java #swing #opengl

Вопрос:

https://i.stack.imgur.com/9vvs7.png

это мой код, он отображает функцию sin, и проблема в том, что есть дополнительное черное пространство, которое вызывает у меня проблемы, когда я хочу создать программу. это прикрепленный код, который я удаляю, но эта проблема возникает в каждой программе

 public static void main(String[] args) {

    // TODO Auto-generated method stub
    final GLProfile profile = GLProfile.get(GLProfile.GL2);
    GLCapabilities Capabilities = new GLCapabilities(profile);
    final GLCanvas glcanvas = new GLCanvas(Capabilities);
    drawFun T = new drawFun();

    glcanvas.addGLEventListener(T);
    glcanvas.setSize(400, 400);

    final JFrame frame = new JFrame("test");
    frame.getContentPane().add(glcanvas);
    frame.setSize(400, 400);
    frame.setVisible(true);

}

@Override
public void display(GLAutoDrawable arg0) {
    // TODO Auto-generated method stub

    final GL2 gl = arg0.getGL().getGL2();
//      gl.glClearColor(1, 1, 1, 1);
//  gl.glClear(GL2.GL_COLOR_BUFFER_BIT);
    
    
    gl.glColor3f(1f, 1f, 1f);
    gl.glBegin(GL2.GL_QUADS);
    gl.glVertex2f(-1f,1f);
    gl.glVertex2f(1f, 1f);
    gl.glVertex2f(1f, -1f);
    gl.glVertex2f(-1f, -1f);
    gl.glEnd();
    
    gl.getContext();
    gl.glColor3f(1f, 0f, 0f);
    gl.glBegin(GL2.GL_LINES);
    gl.glVertex2f(-1f, 0f);
    gl.glVertex2f(1f, 0f);
    gl.glVertex2f(0f, 1f);
    gl.glVertex2f(0f, -1f);

    gl.glEnd();
    drawXpow2plus5(gl);
    


}
 

Комментарии:

1. Не устанавливайте размер компонентов вручную. Каждый компонент качания должен определять свой собственный предпочтительный размер. Затем вы добавляете компонент в рамку и pack() в рамку. Тогда не должно быть дополнительного места, если логика рисования компонентов реализована правильно.