Swing:JPanel中的绘图图形会改变其尺寸吗?

时间:2014-11-25 05:35:18

标签: java swing jpanel

我有一个JPanel类,其方法paintComponent()被覆盖以绘制自定义图表。

如果我绘制的图形大于面板,是否会拉伸面板的尺寸?

如果答案是否定的,我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

  

如果我绘制的图形大于面板,是否会拉伸面板的尺寸?

不,它不会伸展。

  

..我怎么能这样做?

最简单的方法:不是将绘制图形的逻辑放入绘制方法,而是将该逻辑放入绘制正确大小的图像,然后在JLabel中显示图像。

答案 1 :(得分:0)

绘画直接不会影响组件的大小,您可以非常轻松地绘制超出组件可见边界的颜色。

通常,组件的大小由getPreferredSizegetMinimumSizegetMaximumSize的组合决定,布局管理器用于管理组件所在的容器。

如果您想影响面板的大小,您应该更改(在大多数情况下)getPreferredSizeinvalidate容器层次结构的返回结果。

您希望通过覆盖getPreferredSize方法直接执行此操作,而不是依赖setPreferredSize,因为这会阻止其他人更改它。

有关详细信息,请参阅Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing?