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

我的代码:

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


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

据我所知,我没有尝试做这两种事情。我已经很长时间没有使用Java了,我非常生锈。我不知道我在做什么错。

我有三个这样的JRadioButton,它只会在第一个显示错误,直到我注释或删除它,然后错误才移至下一个。

我正在使用JDeveloper 10.1.3.5,Java 1.5.0_06。不幸的是,目前都不可以升级。

最佳答案

看到您使用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

09-11 17:55