【发布时间】:2011-06-01 17:07:36
【问题描述】:
我想在 Java Swing 应用程序中创建一组按钮,就像您在绘画程序中的典型工具面板中获得的一样。也就是一组小的方形按钮,每个都包含一个图标,只有一个被按下,当你按下另一个按钮时,第一个被取消选择。我想了很多解决方案,但没有一个看起来很简单/优雅。
这听起来像是 JRadioButton 的工作,但如果你在其中添加一个图标,你仍然会得到一个小圆圈,这在空间上是相当低效的。我想一个选项是为 JRadioButton 找到替代外观或绘制代码。
另一种选择可能是将 JButton 添加到 ButtonGroup,可能将 JToggleButton.ToggleButtonModel 设置为模型,但这不会达到预期的效果,因为标准 JButton 的绘制代码在选择时不会使其保持按下状态。可能可以修改 JButton 代码来执行此操作。就像让它像“按下”一样“选择”绘画。
第三种选择是使用普通的 JButton,并添加一个通用的鼠标侦听器,让它们保持按下或不按下,并在按钮之间传达变化。
有人可以就实现目标的最佳方法提出建议吗?我错过了一个简单的方法是最好的,但是关于这三个替代方案中哪一个最好的建议以及如何开始的指示也会很有用。
【问题讨论】:
标签: java swing jbutton jradiobutton jtogglebutton