2010-02-24 77 views
2

此標題可能不能最好地描述我的問題。我正在使用Netbean GUI構建器來創建JFrame和多個JPanel。我在一個獨立的類中創建每個JPanel,然後將JPanel類拖到JFrame。問題是在將JPanel拖到JFrame之後,如果我將組件添加到JPanel,它不會在JFrame中包含的JPanel中顯示其他組件。我嘗試了「清理並構建」,但新組件仍未在JFrame中顯示 - > JPanel。添加新組件後,Netbeanw不會刷新JPanel

回答

1

Matisse保留添加到調色板的任何組件的緩存副本。所以,後續更改不會自動提取。拿起變化:

  • 保存並關閉您的JFrame源
  • 確保JPanel組件編譯。
  • 點擊Tools > Palette > Swing/AWT Components
  • 右鍵單擊樹,然後選擇Refresh
  • 打開JFrame組件。現在應該顯示更新的組件
+0

不幸的是,這種方法不適用於我的NB6.8(Mac)......您測試過這種方法的哪個NB?謝謝! – Patrick 2010-02-27 22:08:22

+0

在Windows XP上的NB6.8。但是,它在Ubuntu上也適用於我。一定要執行完整的構建,否則你可以在build/classes中使用一個.class文件,並在jar中使用另一個.class文件。馬蒂斯總是會使用罐子裏的那個。即使build/classes中的一個更新。 – 2010-03-01 16:06:28

1

我知道你的意思; Matisse(NetBeans的GUI編輯器)允許您將自組裝的容器(例如JPanels)拖放到其他容器(例如JFrames)中,但後者中的任何後續更改都不會反映在後者中。據我所知,不幸的是,這只是它的工作方式。

這是我認爲馬蒂斯只能用於快速原型設計和玩耍的原因之一。對於任何嚴重的問題,GUI都必須手動編碼。

0

有同樣的問題,所有你需要做的是:

1)重新編譯的新JPanel子
2)關閉與母公司相關的形式JPanel的
3)重新打開來自刷新子面板現在應該顯示的項目樹

再次父的JPanel。當您打開表單或添加新的子面板時,Matisse只會呈現子面板。因此,刷新顯示而不移除並重新添加子面板的唯一方法是關閉並重新打開它。