2011-12-14 40 views
1

我有actionPerformed()方法,它有兩件事:打印出選定的單選按鈕並將標籤的可見性設置到另一個類中。當單擊單選按鈕時,我得到的不能轉換爲錯誤。JRadioButton不能投到JButton

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()

回答

2

JButton和JRadioButton的最小上界是AbstractButton。我認爲,你可以對此做出自己想做的事情。

4

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 
1

除了與否鑄造工程的技術方面,邏輯思維背後鑄造一個JRadioButton與一個JButton的原因。兩者的用法不同。

0

AbstractButtonJButton使用ButtonGroup連接,因爲如果添加JRadioButton(s)ButtonGroup,那麼只有一個JRadioButton可以選擇,

我可以模擬這個錯誤有關不能強制轉換爲javax.swing.AbstractButton或不能轉換到javax.swing.JButton來自JTable中的不正確使用渲染器

+0

> 95%與問題無關 – kleopatra 2011-12-15 12:37:43