添加ImageIcon时如何保留JRadioButton中的气泡?

时间:2013-12-17 15:01:53

标签: java swing imageicon jradiobutton

我正在改进使用swing创建的摇滚,纸张,剪刀程序,现在我为每个JRadioButton添加了ImageIcons。我导入并添加了摇滚,但我似乎无法找到保持泡沫的方法

enter image description here

显示在文本旁边。当我添加图标时,我明白了。

enter image description here

有什么建议吗?谢谢!

2 个答案:

答案 0 :(得分:1)

创建自定义图标以供选择(可以为当前图标添加边框)。然后,您可以设置选择图标,如下所示。

JRadioButton radio = new JRadioButton(new ImageIcon("Resources/nonSelect.png"));
radio.setSelectedIcon(new ImageIcon("Resources/selected.png"));

此外,您还可以设置翻转图标。

radio.setRolloverIcon(new ImageIcon("Resources/rollover.png"));

答案 1 :(得分:0)

  

“添加ImageIcon时如何保留JRadioButton中的气泡?”

也许您将图标和RB分组为单独的面板

  • 为每个摇滚,纸张和剪刀创建一个面板
  • 将单选按钮和图像标签添加到面板
  • 将这些面板添加到另一个面板以容纳所有三个

像这样的东西

JRadioButton rock = new JRadioButton("Rock");
JRadioButton paper = new JRadioButton("Paper");
JRadioButton scissors = new JRadioButton("Scissors");

ButtonGroup bg = new ButtonGroup();
bg.add(rock);
bg.add(paper);
bg.add(scissors);

JPanel rockPanel = new JPanel();                         <-- Rock panel
rockPanel.add(rock);                                     <-- Rock RB
rockPanel.add(new JLabel(new ImageIcon("rock.png"));     <-- Rock Icon

JPanel paperPanel = new JPanel();                        <-- Paper Panel
rockPanel.add(paper);                                    <-- Paper RB
rockPanel.add(new JLabel(new ImageIcon("paper.png"));    <-- Paper Icon

JPanel scissorsPanel = new JPanel();                     <-- Scissors Panel
rockPanel.add(scissors);                                 <-- Scissors RB
rockPanel.add(new JLabel(new ImageIcon("scissors.png")); <-- Scissors Icon

JPanel holdThreePanel = new JPanel(new GridLayout(3, 1));
holdThreePanel.add(rockPanel);                           <-- Rock Panel
holdThreePanel.add(paperPanel);                          <-- Paper Panel
holdThreePanel.add(scissorsPanel);                       <-- Scissors Panel

然后你会有类似的东西

        holdThreePanel
--------------------------------
|  O  Rock     [rock icon]     |
|  O  Paper    [paper icon]    |
|  O  Scissors [scissors icon] |
+------------------------------+

如果您不想要文本,请不要将任何文本设置为RadioButton。 JRadioButton rock = new RadioButton();