4
我需要在JFrame中显示图像。我怎样才能让窗口大小根据图像的大小自动调整。如何在Swing中自动调整窗口大小
我需要在JFrame中显示图像。我怎样才能让窗口大小根据图像的大小自动调整。如何在Swing中自动调整窗口大小
1.in你把图像作为Icon/ImageIcon
到JLabel
然后
必须测试MaximumSize
为JFrame
,对于具体的监控
如果PreferedSize
返回Toolkit的情况下低于MaximumSize
大小请致电JFrame#pack()
否则必须ca LL setSize()
2.in你把图像作为Icon/ImageIcon
使用Custom Painting
到JComponent
,JPanel
,JLabel
E.I.的情况下然后
然后这个JComponen
吨一定要返回PreferredSize
一个)调用JFrame#pack()
如果PreferedSize
比MaximumSize
下,
b)否则必须调用JFrame#setSize()
c)以假定你不使用Image#getScalledInstance
3.我想在JLabel
中使用Icon
,只有一个问题,即图像可能会小于预期的大小,但没有问题,很可能会将图像集中到JLabel.CENTER
JLabel
另请参阅'JScrollPane',显示[here](http://stackoverflow.com/a/5129757/230513)。 – trashgod 2012-08-10 11:06:06
例如**点2 **使用***自定义绘画***显示[这里](http://stackoverflow.com/a/11372350/1057230) – 2012-08-10 11:08:31
不太了解总体逻辑:a)通常情况下,max是waaay big(因此它足够安全,可以简单地忽略第一个近似值)并且waayy大于pref b)JLabel为pref返回一个合理的大小,pack是所有需要的c)_otherwise_将pref> max这将是一个必须修正的非法状态(而不是强制实际尺寸变大(不确定框架是否会变形)1.和2.看起来非常相似(除了手动绘画和getPref的自定义覆盖) – kleopatra 2012-08-10 12:41:28