1

我有actionPerformed()做两件事的方法:打印出选中的单选按钮并在另一个类中设置标签的可见性。单击单选按钮时,我无法转换为错误。

public void actionPerformed(ActionEvent e)
{
    System.out.println("Selected: " + e.getActionCommand());
    JButton hiddenBtn = (JButton) e.getSource();
    if (hiddenBtn == submit)
    {
        Class o = new Class();
        o.foo();
    }
    JButton close = (JButton) e.getSource();
    if (close == purchase)
    {
        System.exit(0);
    }
}

我在(JButton) e.getSource().

4

4 回答 4

4

JRadioButton不延长JButton。因此,您不能将其强制转换为JButton. 但是,您可以强制转换为AbstractButton.

java.lang.Object
  java.awt.组件
      java.awt.Container
          javax.swing.JComponent
              javax.swing.AbstractButton
                  javax.swing.JToggleButton
                      javax.swing.JRadioButton
于 2011-12-14T21:44:42.703 回答
2

JButton 和 JRadioButton 的最小上限是AbstractButton。我想,你可以投到那个,做你想做的事。

于 2011-12-14T21:44:06.727 回答
1

除了投射是否有效的技术方面,逻辑地思考用 JButton 投射 JRadioButton 背后的原因。两者的用法不同。

于 2011-12-14T21:47:14.603 回答
0

与ButtonGroup 相关AbstractButtonJButton使用ButtonGroup,因为如果添加JRadioButton(s)ButtonGroup,则只能JRadioButton选择一个,

javax.swing.AbstractButton我可以javax.swing.JButtonJTable

于 2011-12-14T22:49:03.997 回答