2013-08-22 63 views
0

我有一個Canvas子類對象,我試圖添加,以及一些其他Canvas子類,JLayeredPane。在JLayeredPane的文檔中,圖層以整數形式給出,例如,JLayeredPane錯誤,當圖層是一個整數

layeredPane.add(child, new Integer(0)); 

但是,當我使用Integer作爲圖層時,出現某種運行時錯誤。 (我真的不能告訴這個錯誤是什麼,因爲我的IDE一直抱怨的搖擺庫缺少來源)。奇怪的是,當我用以下形式:

layeredPane.add(child, 0); 

行實際執行沒有錯誤。我對Java非常陌生,至今還沒有弄清楚自動裝配如何工作,而不是形成它不能很好地工作的觀點。我不確定在這種情況下裸露的0是否會自動複製。

我希望我可以添加有關此錯誤的更多詳細信息,但我甚至沒有看到異常。我將把我的代碼修剪成一個簡單的例子,但我希望以前有過使用JLayeredPane的經驗的人。

+2

發佈[SSCCE](http://sscce.org/),以便我們可以看到您在做什麼 – MadProgrammer

+0

請參見['Container.add(Component,int)'](http://docs.oracle.com /javase/7/docs/api/java/awt/Container.html#add%28java.awt.Component,%20int%29)。這就是方法起源的地方,它並不聲稱接受一個「整數」,而是一個「整數」。 –

回答

0

很抱歉,我無法添加評論,因此我將會回覆。 如果你有IDE工作,那麼你可以使用的設計形式來輕鬆地創建GUI,只需拖拽& -drop事情....

我與JLayeredPane的工作,如果添加組件,你可以使用添加方法像layeredPane.add(Component, javax.swing.JLayeredPane.PALETTE_LAYER);layeredPane.add(Component, javax.swing.JLayeredPane.DEFAULT_LAYER);

使用靜態常量Integer字段並讀取JLayeredPane API或在Oracle上使用它的一些示例。它是一個很好的學習功能。

+0

在發佈之前,我曾嘗試使用JLayeredPane.DEFAULT_LAYER,但JLayeredPane.DEFAULT_LAYER和JLayeredPane.PALETTE_LAYER都會產生相同的無法識別的錯誤。我認爲這可能是最好的,如果我把它歸結爲幾行的例子,所以我可以發佈整個有問題的來源。 – Jorocco

+0

這個錯誤與我在JLayeredPane上使用BorderLayout的事實有關。當我更改爲其他佈局時,錯誤消失。 – Jorocco

+0

你自己弄清楚了,因爲所有其他疑難解答都沒有幫助。使用Swing時,佈局管理器是一件棘手的事情! –

0

這個錯誤與我在JLayeredPane上使用BorderLayout的事實有關。當我更改爲其他佈局時,錯誤消失。

相關問題