我需要在JFrame中显示一张图片。如何使窗口大小根据图像大小自动调整。
1.如果您将图像作为Icon / ImageIcon
放置在JLabel
中,则需要进行以下操作:
必须测试具体监视器的JFrame
的MaximumSize
,该监视器返回Toolkit
如果PreferedSize
小于MaximumSize
大小,则调用JFrame#pack()
否则必须调用setSize()
2.如果您使用Custom Painting
将图像作为Icon / ImageIcon
放置在JComponent
、JPanel
、JLabel
中,则:
那么此JComponen
t必须返回PreferredSize
a) 如果PreferedSize
小于MaximumSize
,则调用JFrame#pack()
,
b) 否则必须调用JFrame#setSize()
c) 假设您不使用Image#getScalledInstance
3.我建议在JLabel
中使用Icon
,唯一的问题是图像可能比屏幕上预期的尺寸小,但这没有任何问题,可以将图像居中到JLabel.CENTER
到JLabel
。
JScrollPane
,在这里有演示。 - trashgod