【发布时间】:2011-03-10 03:32:14
【问题描述】:
开发基于 Java + Swing 的桌面应用程序我遇到了创建一个单选按钮的问题,该单选按钮旁边应该有图像,或者说是另一个像微调器这样的小部件,而不是文本。
单击图像或微调器也应选择相应的单选按钮。
有可能吗?如果有,怎么做?
【问题讨论】:
标签: java swing widget jradiobutton
开发基于 Java + Swing 的桌面应用程序我遇到了创建一个单选按钮的问题,该单选按钮旁边应该有图像,或者说是另一个像微调器这样的小部件,而不是文本。
单击图像或微调器也应选择相应的单选按钮。
有可能吗?如果有,怎么做?
【问题讨论】:
标签: java swing widget jradiobutton
对我来说,带有为构造函数提供的图标的 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 旁边使用空字符串的另一个组件在大多数情况下应该可以正常工作。
【讨论】:
嗯,JRadioButton 有一个构造函数,它接受 Icon。您可以使用它使其旁边有一个图标。
-- 使用指定的图像创建一个最初未选中的单选按钮,但没有文本。
否则,很容易将JRadioButtons 文本设为空,然后在其旁边放置另一个组件。然后您需要向该组件添加一个侦听器,以便在单击其他组件时单击 JRadioButton。
【讨论】: