我使用Java OpenGL绑定(JOGL 2.3.2),问题是我的画布卡在我的表单的左下角,所以无论我写什么,画布的顶部和右侧都有黑色空间。
我发现这是因为我的windows设置中的缩放比例被设置为125%,如果我将其设置为100%,问题就消失了。但是,我觉得这不是解决此类问题的正确方法。以下是我创建框架的代码:
//FrameMain class just adds listener to frame so it can be closed by pressing cross button
final FrameMain frame = new FrameMain("Form 1");
frame.setSize(720, 720);
final GLProfile profile = GLProfile.get(GLProfile.GL2);
GLCapabilities capabilities = new GLCapabilities(profile);
// The canvas
final GLCanvas glcanvas = new GLCanvas(capabilities);
AppMain b = new AppMain();
glcanvas.addGLEventListener(b);
glcanvas.setSize(720, 720);
frame.add(glcanvas);
frame.setVisible(true);
还有我的显示和重塑方法:
public void display(GLAutoDrawable drawable) {
GL2 gl = drawable.getGL().getGL2();
gl.glBegin(GL2.GL_QUADS);
gl.glVertex3f(-1, 1, 0);
gl.glVertex3f(1, 1, 0);
gl.glVertex3f(1, -1, 0);
gl.glVertex3f(-1, -1, 0);
gl.glEnd();
}
public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
GL2 gl = drawable.getGL().getGL2();
gl.glLoadIdentity();
gl.glViewport(0, 0, width, height);
}
我得到的结果是:
我怎样才能使画布占据完整的形式,而不是像现在这样?
附言:我不能改变使用的技术,它应该是JOGL和一些创建窗口没有外部库。是的,我知道swing是过时和丑陋的
1条答案
按热度按时间emeijp431#
因此,根据Rabbid76的建议,我想出了这个解决方案:我在我的类中添加了以下内容,使用的答案是https://stackoverflow.com/a/70119734/20433881:
在创建框架后,将以下行添加到main():
我也这样修改了viewport的行: