2011-05-07 35 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