Java 使用「;实例";?不止一次

Java 使用「;实例";?不止一次,java,swing,jpanel,components,jbutton,Java,Swing,Jpanel,Components,Jbutton,我正在制作一个清单类,其中按钮被添加到滚动窗格内的jpanel中,并使用GridBagConstarints自动对齐按钮。我添加了按钮,基本上只有一个名为ranodomButton的类扩展了JButton。大小、颜色、文本等在此类中定义。然后在主类中,我使用: randomButton b = new randomButton(); 然后我使用: panelName.add(b, gridBagConstrainntsName); 我基本上想多次运行这行代码,但问题是它删除了上一个按钮,我猜

我正在制作一个清单类,其中按钮被添加到滚动窗格内的jpanel中,并使用GridBagConstarints自动对齐按钮。我添加了按钮,基本上只有一个名为ranodomButton的类扩展了JButton。大小、颜色、文本等在此类中定义。然后在主类中,我使用:

randomButton b = new randomButton();
然后我使用:

panelName.add(b, gridBagConstrainntsName);
我基本上想多次运行这行代码,但问题是它删除了上一个按钮,我猜是因为它是同一个东西,是同一个“实例”?随机按钮。我可以简单地制作许多按钮,然后添加,这很好,但是如果我尝试添加两个相同的按钮,我会得到一个错误。我尝试将b=设置为另一个JButton,但它仍然只使用一个。有什么解决办法吗

有什么解决办法吗

正如你已经说过的,“我可以简单地制作许多按钮”。这可能是最简单的解决方案(不知道您的确切要求),您没有理由不这样做,因为您可以在所有按钮之间共享一个ActionListener,这样您就不必创建多个侦听器


或者,对于完全不同的内容,您可以创建一个JTable以在网格中显示数据。JTable使用渲染器绘制按钮,因此只需将数据添加到TableModel。有关更多信息,请阅读上的Swing教程部分。但这在处理颜色和尺寸方面带来了额外的复杂性。

任何解决方案?
-正如您已经说过的,“我可以简单地制作许多按钮”。您没有理由不这样做,因为您可以在所有按钮之间始终共享一个ActionListener,这样您就不必创建多个侦听器。注意:Swing已经过时。如果仍然可行,尝试用JavaFX替换它。