5

我想在 Java Swing 应用程序中创建一组按钮,就像您在绘画程序中的典型工具面板中获得的一样。也就是一组小的方形按钮,每个都包含一个图标,只有一个被按下,当你按下另一个按钮时,第一个被取消选择。我想了很多解决方案,但没有一个看起来很简单/优雅。

这听起来像是 JRadioButton 的工作,但如果你在其中添加一个图标,你仍然会得到一个小圆圈,这在空间上是相当低效的。我想一个选择是为 JRadioButton 找到替代的外观或绘画代码。

另一种选择可能是将 JButton 添加到 ButtonGroup,可能将 JToggleButton.ToggleButtonModel 设置为模型,但这并没有达到预期的效果,因为标准 JButton 的绘制代码在选择时不会保持按下状态。可能可以修改 JButton 代码来执行此操作。就像使其绘画“选中”的方式与“按下”一样。

第三种选择是使用普通的 JButton,并添加一个通用的鼠标侦听器来保持按下或不按下,并在按钮之间传达更改。

任何人都可以就实现目标的最佳方法提出建议吗?我错过的一个简单方法是最好的,但是关于这三种选择中哪一种最好的建议以及如何开始的指示也会很有用。

4

2 回答 2

9

JToggleButton一个平原怎么样ButtonGroup?它不是抽象的,您可以用 实例化一个Icon,并且在选择时它会保持郁闷。

于 2011-06-01T17:13:58.497 回答
1

请参阅 SwingSet2 演示:http: //java.sun.com/products/plugin/1.4/demos/jfc/SwingSet2/SwingSet2.html

单击工具栏上的第二个图标(带有复选框和单选按钮的那个),然后选择“单选按钮”。然后单击右侧面板上的“显示选项”下的“绘制边框”。

演示的源代码在您的 JDK 安装目录下,例如在我的 PC 上它在 \jdk1.6.0_01\demo\jfc\SwingSet2\src 下

于 2011-06-01T17:28:49.513 回答