2013-08-21 25 views
0

我在嘗試將一個簡短的JComboBox轉換爲JRadioButton組。定義單選按鈕時,它告訴我它不喜歡我的setMnemonic語法。JRadioButton setMnemonic broken Java 1.5

我的代碼:

public JRadioButton mailRadio = new JRadioButton("Mail"); 
mailRadio.setMnemonic(KeyEvent.VK_M); 

它會顯示在IntelliSense setMnemonic來(INT)(或任何Java版本的叫法),但只要我接受,mailRadio.setMnemonic是強調語法錯誤。將鼠標懸停在上面會出現錯誤「輸入mailRadio.setMnemonic not found。」編譯會給出錯誤「無效的方法聲明;需要返回類型」。

據我所知,我試圖做這些事情都沒有。我很久沒用過Java了,而且我很生鏽。我不知道我做錯了什麼。

我有三個這樣的JRadioButton,它只會顯示第一個錯誤,直到我評論它或刪除然後錯誤移動到下一個。

我正在使用JDeveloper 10.1.3.5,Java 1.5.0_06。不幸的是,升級目前不是一種選擇。

+0

您可能會發現,通過基本的Java教程將極大地幫助您的Swing編碼,因爲沒有基本的理解,Swing編碼的確會非常令人沮喪。 –

回答

3

看到您使用public來聲明變量,我假設代碼片段是在類聲明中。

在類聲明中不能使用語句(和諸如setMnemonic之類的方法調用是語句)。你應該調用此方法在構造函數中:

public class XXX { 
    public JRadioButton mailRadio = new JRadioButton("Mail"); 

    public XXX() { 
     mailRadio.setMnemonic(KeyEvent.VK_M); 
    }  
} 

,看起來更像是你最初試圖做的是一個初始化塊的替代:

public class XXX { 
    public JRadioButton mailRadio = new JRadioButton("Mail"); 

    { 
     mailRadio.setMnemonic(KeyEvent.VK_M); 
    } 
} 

但是,這是不好的做法,我只是很爲了完整性而提及它。

更多詳細信息in the doc

+0

謝謝。這是我的問題,並感謝鏈接到文檔。只要它讓我知道,我會盡快回復。 – Travis