簡體   English   中英

如何在運行時將組件添加到使用Netbeans可視編輯器創建的Swing UI中?

[英]How do I add components at run time to a Swing UI created with Netbeans visual editor?

我當前正在編寫一個應用程序,用戶可以在其中單擊運行時生成的按鈕。 我從頭開始編寫所有的swing代碼時都知道該怎么做,但是我想利用Netbeans的可視化編輯器。

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

我想在設計時使用可視化編輯器放置一個面板,在其中可以在運行時添加按鈕,以使它們很好地適合布局,但是我不知道如何方便地訪問面板方式。 此外,除了使用面板以外,可能還有其他方法。

所以基本上:

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

謝謝你的幫助。

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

如果您要使用生成的UI,那么最好在該UI中使用JPanel為您自己的組件“分配”空間。 否則,您將不得不擔心組件如何影響UI放置的組件的布局。

僅僅因為您使用的是NetBeans生成的GUI類,並不意味着您必須使用面板的“組”布局。 我發現將其切換到BorderLayout會有所幫助,尤其是在要添加一些動態用戶界面代碼的情況下。

可以通過右鍵單擊GUI-Designer中的組件,選擇屬性並單擊Source-選項卡,或右鍵單擊組件並選擇“ Modify Source”(或類似的東西),將私有更改為受保護/公共。設置適當的訪問修飾符。 或者只是通過getXYZComponent()方法導出它們。

由於您是與設計人員一起構建組件並因此了解每個組件的,因此定位該組件會非常困難。 例如,如果您有一個JTabbedPane並想在用戶按下按鈕之類的東西時向其中添加標簽,則只需發出myJTabbedPane.add(myCustomComponent);即可。 等,出現一個新標簽。

也可以通過使用上面提到的“修改源代碼”對話框來修改自動生成的代碼和/或用於自動生成的代碼,這非常有用。

暫無
暫無

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

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