我有一个JDialog
对象,非常简单,必须是200像素宽,无论其内容如何。
我需要能够动态调整高度,以确保始终显示所有内容。我该怎么做呢?
JDialog.getPreferredSize()
方法,但我无法弄清楚要为高度值添加什么。main
JPanel isValid()
和isShowing()
是否都返回true,只要Panel的一部分实际可见。答案 0 :(得分:6)
首选尺寸仅适用于布局管理器,但不能限制窗口尺寸。
窗口对等体有一种强制执行最小尺寸的方法,因此效果很好,但除了调整大小并重置为所需大小之外,没有任何最大尺寸:
setMinimumSize(new Dimension(200, Integer.MAX_VALUE));
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
Dimension size = getSize();
size.width = 200;
setSize(size);
}
});
答案 1 :(得分:0)
覆盖getPreferredSize()
时,您可以向超类询问身高:
public Dimension getPreferredSize() {
Dimension superPref = super.getPreferredSize();
return new Dimension(200, superPref.getHeight());
}
答案 2 :(得分:0)
如果您使用的是JDialog,则可以覆盖getPreferredSize
方法,如下所示:
@Override
public Dimension getPreferredSize() {
return Toolkit.getDefaultToolkit().getScreenSize();
}
或明确指定维度:
@Override
public Dimension getPreferredSize() {
return new Dimension(width, height);
}