我有自定义JPanel。其唯一的东西是使用drawRect
对象的Graphics
方法绘制矩形。 JPanel总是处于非常特定的方形尺寸,拒绝变大或变小。尝试覆盖getPreferredSize()
方法,但没有效果。
尝试为此自定义JPanel设置不同的布局管理器,并尝试为承载此JPanel的JPanel设置每个布局管理器。尽管如此,自定义JPanel的大小保持不变。
正如我所说,自定义JPanel中没有组件,只有一个矩形图。
有什么想法吗?
答案 0 :(得分:3)
不了解您想要实现的目标:
就您的包含面板而言,您需要知道哪些布局管理器尊重首选尺寸,哪些不符合
Grid Flow Border Box GridBag
Respect PreferredSize NO YES NO YES YES
话虽如此,如果你将JPanel
中的彩绘JPanel
与其中一个“NOs”包裹在一起,那么彩绘的JPanel
应该是随着框架的大小调整拉伸。
此外,如果您希望绘制的矩形与其JPanel
一起拉伸,则需要记住使用{{1}的getWidth()
和getHeight()
绘制矩形并且不使用硬编码值。
以下示例使用JPanel
作为包含面板的布局,并在执行绘画时使用BorderLayout
和getWidth()
。
getHeight()