java - 使用 "Instance"?不止一次

标签 java swing jpanel components jbutton

我正在创建一个 list 类,其中按钮添加到滚动 Pane 内的 jpanel 中,并使用 GridBagConstarints 按钮自动对齐。添加的按钮基本上只是一个名为 randomButton 的类,它扩展了 JButton。大小、颜色、文字等都是在这个类中定义的。然后在主类中我使用:

randomButton b = new randomButton();

然后我使用:

panelName.add(b, gridBagConstrainntsName);

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

最佳答案

Any solutions?

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

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

关于java - 使用 "Instance"?不止一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23088612/

相关文章:

java - 在控制台上画一 strip 星号的线

java - 多线程Java程序中的连接池

java - 如何解决 "No more handles exception", Eclipse Oxygen, Windowbuilder Pro

java - JPanel 不需要的位置和/或大小

java - 从外部重写 JPanel 的 getPreferredSize() 和 setPreferredSize() 之间的区别

java - 不兼容的类型 int 需要 string

java - Spring MVC : @ManyToMany DAO?

java - 如何在运行时用 Java 将面板动态添加到其他面板?

java - 在 JavaFX 阶段使用 java.awt.Robot 安全吗?