如何让JPanel的长度和宽度自动扩展?

时间:2012-01-31 15:45:15

标签: java swing jpanel jscrollpane

我有一个JScrollPane,在里面放了一个JPanel。 还有一个按钮,按下时,将绘制一个随机长度和宽度的矩形 在面板上。因此,每次按下此按钮,都会调用JPanel的重绘方法。

问题在于,有时矩形的长度很高,因此JPanel不会全部显示,只是已经适合面板的一部分。

如何让JPanel显示在其中绘制的内容,而不是矩形的尺寸是什么?

2 个答案:

答案 0 :(得分:2)

一种选择是将矩形绘制到Graphics相似尺寸的BufferedImage对象上,然后将此图像用作Icon的{​​{1}}。将该标签以任意坐标添加到面板,然后JLabel revalidate并发出JScrollPane请求。

答案 1 :(得分:1)

您的ScrollPane正在限制大小,默认面板将拉伸以适应其子组件。 ScrollPane是固定的,这就是它被称为ScrollPane的原因,你可以做的是以编程方式计算矩形的大小,并在每次按下按钮时重新绘制具有该大小的滚动窗格,或者更好,你应该知道可能的大小并使你的GUI适当足以弥补所有这些尺寸。