如果用户调整框架大小,如何扩大/缩小画布(Jogl)?

时间:2019-05-14 04:12:09

标签: java opengl jogl glcanvas

我在带有BorderLayout的jpanel中有一个glcanvas。画布的大小应取决于窗口的大小。 初始尺寸是通过

设置的
glCanvas.setSize(640, 480);

它像这样添加到面板中

jPanel3DModel.add(Model3DCanvas.getInstance().getCanvas());
jPanelRight.add(jPanel3DModel, BorderLayout.NORTH);

但是画布的大小是固定的,框架中其他组件的所有面板都只是调整大小。

1 个答案:

答案 0 :(得分:0)

如果您必须“手动”对JPanel调整大小作出反应,则可以使用https://docs.oracle.com/javase/tutorial/uiswing/events/componentlistener.html中所述的ComponentListener

假设canvas是您的GLCanvas,jpanel是画布调整大小所依赖的组件。

jPanel.addComponentListener(new java.awt.event.ComponentAdapter() {
  public void componentResized(java.awt.event.ComponentEvent event) {
    int width=event.getComponent().getWidth();
    int height=event.getComponent().getHeight();
    canvas.setSize(width,height);
  }
});