2014-04-15 119 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中的部分了解更多信息。但是这在处理颜色和尺寸方面带来了额外的复杂性。