首頁  >  文章  >  Java  >  儘管添加了多個元件,為什麼我的 JFrame 中只顯示一個元件?

儘管添加了多個元件,為什麼我的 JFrame 中只顯示一個元件?

Barbara Streisand
Barbara Streisand原創
2024-11-07 03:35:03589瀏覽

Why is only one component showing up in my JFrame despite adding multiple components?

JFrame 中僅顯示一個元件

此問題源自於使用者遇到的問題,其中只有GUI 的頂部元件程式執行階段可見。使用者的程式碼嘗試在框架中顯示多個面板和文字字段,但最初只有一個元件可見。這種差異導致他們懷疑其他元素被遮蔽。

解決方案

檢查程式碼後,很明顯問題出在 BorderLayout JFrame 的內容窗格。 BorderLayout 只允許一個元件佔據中心位置,這是所有元件最初放置的位置。

要解決此問題,使用者應在將每個元件新增至 BorderLayout 時為其指定特定的限制。以下程式碼片段示範了這種方法:

f.add(top, BorderLayout.PAGE_START);
f.add(mid);
f.add(bot, BorderLayout.PAGE_END);

此程式碼將頂部面板放置在框架的開頭,使中間和底部面板不受約束。因此,它們將垂直顯示在頂部面板下方。

其他改進

除了解決可見性問題外,使用者還表示希望增強程式的效能。這裡有一些額外的建議:

  • 刪除 f.setSize(500, 500);並在 setVisible(true) 之前呼叫 pack() 以根據其內容最佳化框架的大小。
  • Change f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);到 f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);以獲得更優雅的退出策略。
  • 省略對各個組件的 setVisible(true) 調用,因為它們在添加到頂級容器後預設可見。
  • 刪除不必要的 public 語句class EncDecExample 擴展了 JFrame 並將其替換為公共類別 EncDecExample。

透過實現這些更改,程式不僅會按預期顯示所有組件,而且會在使用者按下關閉時更有效率地運行並無縫關閉按鈕。

以上是儘管添加了多個元件,為什麼我的 JFrame 中只顯示一個元件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn