簡體   English   中英

根據JPanel圖片內容調整JFrame的大小?

[英]Resize JFrame according to JPanel image content?

我正在使用NetBeans開發一個簡單的圖像瀏覽器。 我有ImageBrowser類,它擴展了JFrame (通過右鍵單擊NetBeans項目,然后單擊“新建”->“ JFrame窗體”來創建它),並且在其中是一個JPanel和一個JToolbar其中JButtons是從用戶選擇的目錄中生成的圖像縮略圖。

單擊圖像縮略圖會在此主JPanel上顯示整個圖像。 基本上,圖像大小不同,我希望JFrame (即整個窗口)自動調整為圖像大小。

我嘗試每次JPanel內容更改時(即,當用戶單擊縮略圖並觸發ActionEvent時)為主JFrame調用.pack() ,但這給了我這個錯誤:

非靜態方法pack()不能從靜態內容中引用

因此,我寧願堅持這樣做,也想知道是否有辦法做到這一點。 如果有,是否還可以設置JFrame窗口大小的最大限制?

至於布局, JFrame是使用NetBeans GUI開發人員構造的免費布局。

非靜態方法pack()不能從靜態內容中引用

不要在應用程序中使用靜態方法。 不需要這樣做。 假設您遵循在Swing教程示例中找到的示例代碼,則唯一的靜態方法應該是main()方法和“ createAndShowGUI”方法。

您可以使用以下方法找到要打包的窗口

SwingUtilities.windowForComponent(...);

您可以從ActionEvent中獲取源代碼,然后使用該組件查找要打包的Window。

是否還可以設置JFrame窗口大小的最大限制?

做pack()。 然后,如果尺寸超出限制,則始終可以通過在Window上調用setSize()來覆蓋最大尺寸。

我也同意,每次更改圖像時都要不斷更改Window的大小並不是一個好的設計。

我將圖像添加到JLabel並將標簽添加到滾動窗格,以使當圖像大於框架大小時該滾動條可以顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM