2009-07-11 37 views
2

我目前正在編寫一個應用程序,用戶在某個時候點擊一個已經在運行時生成的按鈕。我從頭開始編寫所有的swing代碼時知道如何去做,但我想利用Netbeans的可視化編輯器。如何在運行時將組件添加到使用Netbeans可視化編輯器創建的Swing UI中?

生成的UI代碼進入initComponents()方法,我無法修改它,因爲它是從可視化表單自動重新生成的。

我想在設計時使用可視化編輯器放置一個面板,我可以在運行時添加按鈕,以便它們很好地適應佈局,但我不知道如何訪問面板以方便的方式。另外,除了使用面板之外,還有另一種方法。

所以基本上:

  • 如何找到在運行時Swing組件?
  • 有沒有更好的方式來集成運行時在創建的Swing UI中創建的組件?

感謝您的幫助。

回答

1

NetBeans生成的GUI類將所有組件存儲在私有變量中。您可以在生成的類中添加一個返回面板的方法,即使您進行其他設計,該方法也會保留下來。

如果你打算使用產生的UI,那麼它可能最好使用一個JPanel該UI內「開拓」空間爲自己的組件。否則,您將不得不擔心組件如何影響UI所放置組件的佈局。

+0

讓我感到羞恥,對於成員聲明(舊的習慣只看類名聲明的頂部),我在生成的源文件(「變量聲明 - 不要修改」部分)中看起來不夠好。 謝謝你的回答。 – christopheml 2009-07-11 11:36:37

0

僅僅因爲你正在使用生成的GUI類的NetBeans並不意味着你必須使用組佈局面板。我發現將它切換到BorderLayout有助於特別在我想添加一些動態用戶界面代碼的情況下。

+0

當我正確訪問面板時,我遇到了這個問題:由於爲面板配置了默認的GroupLayout,因此沒有顯示按鈕。 我切換到BoxLayout,一切按預期工作。我只是因爲容器的佈局必須通過容器上的右鍵單擊菜單而不是在屬性檢查器中進行更改而感到困惑。希望這也有幫助。 – christopheml 2009-07-13 08:05:58

0

可以通過右鍵單擊GUI-Designer中的組件,選擇屬性並點擊Source選項卡或右鍵單擊組件並選擇「修改源」(或其他這樣)並設置適當的訪問修飾符。 或者只是通過getXYZComponent()方法導出它們。

定位組件時,應提供作爲是太困難的,因爲你與設計師建造它,從而瞭解每個組件。例如,如果你有一個JTabbedPane,當用戶點擊一個按鈕或類似的東西時想爲它添加標籤,你只需發出myJTabbedPane.add(myCustomComponent);等voila,出現一個新標籤。

也可以修改自動生成的代碼和/或通過使用「修改源」上面提到的對話框,其可以是真正有用的用於自動生成的代碼。

相關問題