我在一个带有BorderLayout的jpanel中有一个glcanvas。画布的大小应该取决于窗口的大小。初始大小通过
glCanvas.setSize(640, 480);并将其添加到面板中,如下所示
jPanel3DModel.add(Model3DCanvas.getInstance().getCanvas());
jPanelRight.add(jPanel3DModel, BorderLayout.NORTH);然而,画布的大小是固定的,而框架中其他组件的所有面板只是调整了大小。
发布于 2019-05-15 16:50:33
如果您必须“手动”响应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);
}
});https://stackoverflow.com/questions/56122906
复制相似问题