0

我正在尝试将短 JComboBox 转换为 JRadioButton 组。定义单选按钮时,它告诉我它不喜欢我的 setMnemonic 语法。

我的代码:

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

它将在 intellisense 中显示 setMnemonic(int) (或任何调用的 java 版本),但一旦我接受它,mailRadio.setMnemonic 就会为语法错误加下划线。将鼠标悬停在它上面会出现错误“找不到类型 mailRadio.setMnemonic”。编译给出错误“无效的方法声明;需要返回类型”。

据我所知,我没有尝试做这两件事。好久没用Java了,很生疏。我不知道我做错了什么。

我有三个这样的 JRadioButtons,它只会在第一个上显示错误,直到我评论它或删除它,然后错误移动到下一个。

我正在使用 JDeveloper 10.1.3.5、Java 1.5.0_06。不幸的是,目前升级任何一个都不是一种选择。

4

1 回答 1

3

看到您曾经public声明变量,我假设代码片段在类声明中。

您不能在类声明中使用语句(以及诸如setMnemonicis 语句之类的方法调用)。您应该在构造函数中调用此方法:

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);
    }
}

但这是不好的做法,我只是为了完整起见而提到它。

文档中的更多详细信息。

于 2013-08-21T19:46:19.060 回答