Java 如何使一个JPanel的边界以另一个JPanel为中心?
我有一个带有边框布局的主面板,中间还有一个面板。 因为我想在中间的面板上画画,所以我必须得到它的边界Java 如何使一个JPanel的边界以另一个JPanel为中心?,java,swing,jpanel,Java,Swing,Jpanel,我有一个带有边框布局的主面板,中间还有一个面板。 因为我想在中间的面板上画画,所以我必须得到它的边界 panel_main.add(panel, BorderLayout.CENTER); 我想将边界保存在一个矩形中,如下所示: Rectangle bounding = new Rectangle (panel.getX(), panel.getY(), panel.getWidth(), panel.getHeight()); 但每个参数似乎都是0。那么我如何得到面板的边界呢? 我
panel_main.add(panel, BorderLayout.CENTER);
我想将边界保存在一个矩形中,如下所示:
Rectangle bounding = new Rectangle
(panel.getX(), panel.getY(), panel.getWidth(), panel.getHeight());
但每个参数似乎都是0。那么我如何得到面板的边界呢?
我可以得到边界布局的边界吗
但每个参数似乎都是0
所有Swing组件在创建时的大小均为(0,0)。只有在包装框架并使其可见时,才会给组件指定尺寸
因为我想在中间的面板上画画,所以我必须得到它的边界
panel_main.add(panel, BorderLayout.CENTER);
覆盖面板的paintComponent()
方法。然后,您可以使用getSize()
方法来控制绘画的完成位置
您还需要覆盖面板的getPreferredSize()
方法,以便布局管理器可以正确地打包()框架
阅读上Swing教程中的部分,了解更多信息和工作示例,帮助您入门。我不确定您是否需要边界。如果这样做,在调用layout之后(在
pack()
之后)获取边界,但是在我将其添加到主面板之后(如上面的示例),它应该有一个正确的大小?