我需要设计一个接口,在其中我可以使用一个与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));
}
});
侦听器本身正在运行,问题在于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);
}