2011-05-07 37 views
2

我正在使用一个包含带图标的JLabel的JPanel。在JLabel调整大小时,我在JLabel上使用ComponentAdapter从控制器请求正确大小的缩略图(使用MVC模式)。当JLabel被调整为比以前更大时,这可以很好地工作,因此它会填充JLabel的大小的ImageIcon。但是,当调整窗口的大小时,它根本不会调整JLabel的大小(因为图标的大小,我假设)。调整JLabel的大小比其图标小?

是否可能有一些布局管理器或设置使JLabel无视其内容(ImageIcon)并调整其本身?我的意思是,它可以截短文本,所以它应该能够在缩小尺寸时显示图像的一部分。

+1

你玩过'JLabel.setMinimumSize()'吗? – 2011-05-07 18:06:04

+1

为了尽快提供更好的帮助,请发布[SSCCE](http://pscode.org/sscce.html)。 – 2011-05-07 18:10:47

+0

@Bala R -1用于宣传setXXSize的用法之一;-) – kleopatra 2011-05-08 09:31:51

回答

2

尝试使用setPreferredSize()setMinimumSize()进行试验以确保JLabel允许自己缩小到所需的尺寸。您还需要仔细检查您正在使用的是何种类型的以及在将组件添加到面板时使用了什么约束条件(如果有)。如果可以,请尝试使用其他布局管理器。如果没有任何作品,你需要提供一些示例代码。

+0

-1以促进使用任何setXXSize。这甚至不会对此有所帮助 - 答案的第一部分根本就是错误的。狂野的猜测很少帮助;-) – kleopatra 2011-05-08 10:43:22

+0

好,不管。请原谅我提出一些可能或可能不适用于OP的内容,因为他们没有提供示例程序。直到他们这样做,你没有证据证明这是行不通的。如果组件是'JLabel'的一个子类,并且'setXXSize'的实现不好,那么它确实可能是问题所在。 – BoffinbraiN 2011-05-09 09:03:02

+0

我们正在谈论JLabel - 它的min/pref大小的实现是众所周知的,不需要实验也不需要猜测,只需查看它即可。 – kleopatra 2011-05-09 09:06:18