2014-04-15 72 views
0

我正在做一個庫存類,其中按鈕被添加到滾動窗格內的jpanel中,並且使用GridBagConstarints按鈕會自動進行對齊。按鈕添加,基本上只是一個名爲ranodomButton的類,它擴展了JButton。尺寸,顏色,文字等在此課程中定義。然後在主類別I:使用「實例」?不止一次

randomButton b = new randomButton(); 

然後我用:

panelName.add(b, gridBagConstrainntsName); 

我基本上要運行此行代碼多次,但問題是它會刪除以前的按鈕,即時猜測由於它是相同的事情,那是相同的「實例」? randomButton。我可以簡單地製作很多按鈕,然後添加,然後添加它,但是如果我嘗試添加2,我會得到一個錯誤。我曾嘗試將b =設置爲另一個JButton,並且它仍然只使用一個。任何解決方案

+2

'任何解決方案?' - 正如你已經說過的,「我可以簡單地製造許多按鈕」。沒有理由不能這樣做,因爲您始終可以在所有按鈕之間共享ActionListener,因此您不必創建多個偵聽器。 – camickr

+0

注意:Swing已過時。如果仍有可能,請嘗試用JavaFX替換它。 –

回答

2

任何解決方案?

正如你已經說過的,「我可以簡單地製作很多按鈕」。這可能是最簡單的解決方案(不知道確切的需求),並且沒有理由不能這樣做,因爲您始終可以在所有按鈕之間共享ActionListener,因此您不必創建多個偵聽器。

或者對於完全不同的東西,您可以創建一個JTable來在網格中顯示數據。 JTable使用渲染器來繪製按鈕,因此您只需將數據添加到TableModel。請閱讀Swing教程How to Use Tables中的部分了解更多信息。但是這在處理顏色和尺寸方面帶來了額外的複雜性。