2012-08-10 59 views

回答

5

1.in你把图像作为Icon/ImageIconJLabel然后

  • 必须测试MaximumSizeJFrame,对于具体的监控

  • 如果PreferedSize返回Toolkit的情况下低于MaximumSize大小请致电JFrame#pack()

  • 否则必须ca LL setSize()

2.in你把图像作为Icon/ImageIcon使用Custom PaintingJComponentJPanelJLabel E.I.的情况下然后

  • 然后这个JComponen吨一定要返回PreferredSize

    一个)调用JFrame#pack()如果PreferedSizeMaximumSize下,

    b)否则必须调用JFrame#setSize()

    c)以假定你不使用Image#getScalledInstance

3.我想在JLabel中使用Icon,只有一个问题,即图像可能会小于预期的大小,但没有问题,很可能会将图像集中到JLabel.CENTERJLabel

+4

另请参阅'JScrollPane',显示[here](http://stackoverflow.com/a/5129757/230513)。 – trashgod 2012-08-10 11:06:06

+3

例如**点2 **使用***自定义绘画***显示[这里](http://stackoverflow.com/a/11372350/1057230) – 2012-08-10 11:08:31

+1

不太了解总体逻辑:a)通常情况下,max是waaay big(因此它足够安全,可以简单地忽略第一个近似值)并且waayy大于pref b)JLabel为pref返回一个合理的大小,pack是所有需要的c)_otherwise_将pref> max这将是一个必须修正的非法状态(而不是强制实际尺寸变大(不确定框架是否会变形)1.和2.看起来非常相似(除了手动绘画和getPref的自定义覆盖) – kleopatra 2012-08-10 12:41:28