我有一個JFrame
和一個JPanel
裏面。該面板顯示在運行時從網絡接收的圖像。這些圖像通常很大,但可以有任何大小。考慮到這一點,並考慮到我可能會在未來添加一個菜單欄框架,我想要執行以下操作:擺動:關於調整JFrames和有條件滾動的大小
- 對於每個接收到的圖像,面板調整爲其確切大小。
- 如果圖像(因此調整大小的面板)超過了寬度或高度的某個最大值(例如:屏幕大小 - 100px),則框架應調整爲允許的最大值並啓用滾動條。
- 否則,框架應該調整其大小以顯示整個面板而沒有任何填充。因此,框架大小是內容面板的大小加上邊框和標題欄(如果我最終添加它,還有菜單欄)。
有沒有辦法做到這一點?如果不是,那麼最好的選擇是什麼?
在此先感謝
編輯:
的問題,總結,是如何調整父框架,以適應其子內容面板。這與大多數人所做的相反(調整面板以適應框架)。
對於點#3,我已經有內容面板的尺寸,所以問題被減少到計算幀的大小(頂部標題欄高度,邊框寬度)。有了這個,我可以調整框架的大小,例如內容窗格恰好位於內部。
答案聽起來很規範的行爲,這有什麼錯包()? – kleopatra 2012-03-29 12:01:21
@kleopatra不知道原因,但不起作用。以最小尺寸啓動框架,然後在收到圖像時調整面板大小。在這一點上,如果我打電話給打包,那麼框架不會改變其大小。 – 2012-03-29 12:03:18
調整任何東西都不是你的工作,它是LayoutManager的工作:讓面板根據圖像大小決定它的prefSize,讓它在接收一個新圖像時重新驗證自己,然後在框架上調用pack - workformealways(從我的頂部頭,沒有IDE方便) – kleopatra 2012-03-29 12:21:36