设置JPanel的大小,当没有组件时

时间:2014-03-04 08:26:26

标签: java swing jpanel preferredsize

我有自定义JPanel。其唯一的东西是使用drawRect对象的Graphics方法绘制矩形。 JPanel总是处于非常特定的方形尺寸,拒绝变大或变小。尝试覆盖getPreferredSize()方法,但没有效果。

尝试为此自定义JPanel设置不同的布局管理器,并尝试为承载此JPanel的JPanel设置每个布局管理器。尽管如此,自定义JPanel的大小保持不变。

正如我所说,自定义JPanel中没有组件,只有一个矩形图。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

不了解您想要实现的目标:

  • 就您的包含面板而言,您需要知道哪些布局管理器尊重首选尺寸,哪些不符合

                              Grid     Flow     Border    Box   GridBag
    Respect PreferredSize      NO       YES      NO       YES     YES
    
  • 话虽如此,如果你将JPanel中的彩绘JPanel与其中一个“NOs”包裹在一起,那么彩绘的JPanel应该是随着框架的大小调整拉伸。

  • 此外,如果您希望绘制的矩形与其JPanel一起拉伸,则需要记住使用{{1}的getWidth()getHeight()绘制矩形并且不使用硬编码值。

以下示例使用JPanel作为包含面板的布局,并在执行绘画时使用BorderLayoutgetWidth()

enter image description here

enter image description here

enter image description here

getHeight()