gpt4 book ai didi

java - 以 50 的倍数自动调整 JPanel 的大小

转载 作者:行者123 更新时间:2023-11-29 05:02:43 25 4
gpt4 key购买 nike

我需要设计一个界面,其中我有一个随 OutterPanel 调整大小的 InnerPanel。好的,问题是我只需要将 InnerPanel 调整为 50 的倍数。

因此,如果 OutterPanel 有 50px,则 InnerPanel 有 50px。如果 OutterPanel 的大小调整为 80px,则 InnerPanel 的大小将保持在 50px。但是,当 OutterPanel 的大小调整为 110px 时,InnerPanel 变为 100px。

提前致谢!


编辑:按照建议,我发布了到目前为止我尝试过的问题......在 OutterPanel 的构造函数中,我添加了一个 ComponentListener 来调整 InnerPanel 的大小:

JPanel OutterPanel = this;

this.addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
contentArea.setPreferredSize(new Dimension(OutterPanel.getPreferredSize().width, 500));
}
});

Listener 本身在工作,问题是 OutterPanel.getPreferredSize().width 总是返回 0。出于某种原因,OutterPanel.getPreferredSize().height 返回实际高度。

如何获取 OutterPanel 宽度?设置 InnerPanel 尺寸的最佳途径是什么?

最佳答案

覆盖内部面板的 getPreferredSize() 方法。

也许是这样的:

@Override
public Dimension getPreferredSize()
{
Dimension parentSize = getParent().getSize();
int width = (parentSize.width / 50) * 50;
int height = (parentSize.height / 50) * 50;
return new Dimension(width, height);
}

关于java - 以 50 的倍数自动调整 JPanel 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523702/

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