我在带有BorderLayout的jpanel中有一个glcanvas。画布的大小应取决于窗口的大小。 初始尺寸是通过
设置的glCanvas.setSize(640, 480);
它像这样添加到面板中
jPanel3DModel.add(Model3DCanvas.getInstance().getCanvas());
jPanelRight.add(jPanel3DModel, BorderLayout.NORTH);
但是画布的大小是固定的,框架中其他组件的所有面板都只是调整大小。
答案 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);
}
});