【问题标题】:Rich swing radiobutton丰富的摇摆单选按钮
【发布时间】:2011-03-10 03:32:14
【问题描述】:

开发基于 Java + Swing 的桌面应用程序我遇到了创建一个单选按钮的问题,该单选按钮旁边应该有图像,或者说是另一个像微调器这样的小部件,而不是文本。

单击图像或微调器也应选择相应的单选按钮。

有可能吗?如果有,怎么做?

【问题讨论】:

    标签: java swing widget jradiobutton


    【解决方案1】:

    对我来说,带有为构造函数提供的图标的 JRadioButton 似乎不起作用;它用给定的图标替换了“本机单选按钮图标”。我认为除了“单选按钮图标”之外,还需要带有图标的单选按钮。

    关于 Bug #4177248 的 Sun 错误数据库的行为存在一些争论,但没有进行任何更改。

    相反,可以尝试JRadioButtonMenuItem,即使这样做可能会有一些不受欢迎的行为?

    JRadioButton 和 JRadioButtonMenuItem 的简短评估:

    public class IconRadioButtonEval {
        public static void main(String[] args) throws Exception {
            JFrame frame = new JFrame();
            JPanel panel = new JPanel();
            // Use some arbitrary working URL to an icon
            URL url =
                    new URL(
                            "http://mikeo.co.uk/demo/sqlspatial/Images/RSS_Icon.png");
            Icon icon = new ImageIcon(url);
            JRadioButton button = new JRadioButton(icon);
            panel.add(new JLabel("RadioButton with icon:"));
            panel.add(button);
            panel.add(new JLabel("RadioButtonMenuItem with icon:"));
            panel.add(new JRadioButtonMenuItem(icon));
    
            frame.getContentPane().add(panel);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
        }
    }
    

    Justin 建议在 JRadioButton 旁边使用空字符串的另一个组件在大多数情况下应该可以正常工作。

    【讨论】:

    • 您的解决方案帮助我将文本和图标添加到单选按钮,我想问您有关您的表达“即使可能会有一些不需要的行为?” 什么样的不受欢迎的行为 谢谢 (+1)
    【解决方案2】:

    嗯,JRadioButton 有一个构造函数,它接受 Icon。您可以使用它使其旁边有一个图标。

    JRadioButton(Icon icon)

    -- 使用指定的图像创建一个最初未选中的单选按钮,但没有文本。

    否则,很容易将JRadioButtons 文本设为空,然后在其旁边放置另一个组件。然后您需要向该组件添加一个侦听器,以便在单击其他组件时单击 JRadioButton

    【讨论】:

    • 你试过那个构造函数了吗?它似乎替换了原始单选按钮图像,而不是在其旁边添加图标(请参阅另一个答案中的评估)(-1)。使用另一个组件的方法可能会很好 (+1)
    猜你喜欢
    • 2019-07-31
    • 2021-08-16
    • 1970-01-01
    • 2011-11-29
    • 2011-07-15
    • 1970-01-01
    • 2012-11-15
    • 2012-07-30
    • 1970-01-01
    相关资源
    最近更新 更多