gpt4 book ai didi

java - 如何获得以另一个 JPanel 为中心的 JPanel 的边界?

转载 作者:行者123 更新时间:2023-12-02 12:43:36 27 4
gpt4 key购买 nike

我有一个带有边框布局的主面板,中间包含另一个面板。因为我想在居中的面板内部绘画,所以我必须得到它的边界。

panel_main.add(panel, BorderLayout.CENTER);

我想将边界保存在这样的矩形中:

Rectangle bounding = new Rectangle 
(panel.getX(), panel.getY(), panel.getWidth(), panel.getHeight());

但是每个参数似乎都是 0。那么如何获取面板的边界呢?我可以获取 BorderLayout 的边界吗?

最佳答案

But every argument seems to be 0.

所有 Swing 组件在创建时的大小均为 (0, 0)。仅当框架被打包并可见时,组件才会被指定尺寸。

Because I want to paint inside the centered panel I have to get the bounds of it.

您重写面板的 paintComponent() 方法。然后您可以使用 getSize() 方法来控制绘制的位置。

您还需要重写面板的 getPreferredSize() 方法,以便布局管理器可以正确 pack() 框架。

阅读 Swing 教程中关于 Custom Painting 的部分了解更多信息和工作示例以帮助您入门。

关于java - 如何获得以另一个 JPanel 为中心的 JPanel 的边界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44861574/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com