JRadioButton не может быть приведен к JButton - PullRequest
1 голос
/ 15 декабря 2011

У меня есть метод 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 голосов
/ 15 декабря 2011

JRadioButton не распространяется JButton.Следовательно, вы не можете привести его к JButton.Вы можете, однако, привести к AbstractButton.

java.lang.Object
  java.awt.Component
      java.awt.Container
          javax.swing.JComponent
              javax.swing.AbstractButton
                  javax.swing.JToggleButton
                      javax.swing.JRadioButton
2 голосов
/ 15 декабря 2011

Их наименьшая верхняя граница для JButton и JRadioButton равна AbstractButton . Я думаю, что вы можете сделать это, чтобы делать то, что вы хотите.

1 голос
/ 15 декабря 2011

Помимо технического аспекта того, работает ли приведение, логически подумайте о причине создания JRadioButton с JButton.Использование обоих отличается.

0 голосов
/ 15 декабря 2011

В связи с AbstractButton или JButton используйте ButtonGroup , потому что, если вы добавите JRadioButton(s) к ButtonGroup, тогда будет выбран только один JRadioButton,

Я могу симулировать эту ошибку, которую нельзя преобразовать в javax.swing.AbstractButton или нельзя преобразовать в javax.swing.JButton из неверного средства визуализации использования в JTable

...