【问题标题】:Rectangular Java Swing Radio buttons?矩形Java Swing单选按钮?
【发布时间】:2011-06-01 17:07:36
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java swing jbutton jradiobutton jtogglebutton


    【解决方案1】:

    ButtonGroup 中的普通 JToggleButton 怎么样?它不是抽象的,你可以用Icon 实例化一个,它在被选中时会一直处于郁闷状态。

    【讨论】:

    • 来自 Swing 教程:“当您不想要典型的单选按钮或复选框外观时,JToggleButton 会很有用。”
    • 完美,谢谢。我以为我会错过一些简单的事情。
    【解决方案2】:

    查看 SwingSet2 演示: http://java.sun.com/products/plugin/1.4/demos/jfc/SwingSet2/SwingSet2.html

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

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

    【讨论】:

    • 抱歉,这不是我要找的 - 你仍然得到小圆圈,并使用了额外的空间。
    • 其实我觉得它真的你在找什么。 “图像单选按钮”下的圆圈是自定义图像——也就是说,如果你愿意,你可以用正方形或菠萝替换它们,在这种情况下你会得到一个不小的圆圈。然后你可以在单选按钮上 setText("") 或 setText(null) 。 :)
    猜你喜欢
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多