我公司有一個應用程式,用于在服務器上搜索與客戶相關的檔案(macOS 提供的搜索失敗,甚至 FoxTrotSearch 等第三方程式也無法找到網路驅動器上的所有檔案)。
有時(可能是 10% 的次數),首選項框架沒有完全渲染。一些組件只是在螢屏上丟失,但以某種方式存在,因為其他組件正確放置在空白空間周圍。如果我選擇另一個視窗/框架/應用程式,則會出現缺少的組件。

我已經注意到,當涉及更多組件時,問題會更頻繁地出現。有時只缺少幾個組件,有時接近 50%。
我在呼叫之前放置并添加了所有組件 validate(); pack(); setVisible(true);
是否有我遺漏的東西,或者這是一種必須接受的行為?
為了完整性:我正在使用以下組件:
java.awt.Componentjava.awt.Labeljava.awt.TextFieldjavax.swing.JCheckBoxjavax.swing.JFramejavax.swing.JSeparatorjavax.swing.JSpinner- (
java.awt.FlowLayout) - (
javax.swing.BoxLayout)
uj5u.com熱心網友回復:
不要混合使用 Swing 和 AWT 組件。由于 Swing 提供輕量級組件,而將它們混合在一起可能(通常會)導致問題,而 AWT 具有重量級組件。
IE 而不是Component, Label&TextField使用JComponent(或JPanel), JLabel& JTextField。
注意: Swing是建立在 AWT 組件之上的——Swing 組件的繼承層次通常最終會回傳到 AWT 組件。Swing 還使用了大量 AWT API(列印、Java2D 字體等)和許多基于 AWT 的布局。這只是我們需要小心的組件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/343768.html
