我试图在Swing类中调用actionlistener之外的方法。我收到此错误,"参数生成的非法修饰符;只允许决赛#34;
如果我需要提供更多信息,请提供帮助,并告诉我。
JButton btnAddGrade = new JButton("Add Grade");
btnAddGrade.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
generate();
}
});
btnAddGrade.setFont(new Font("Tahoma", Font.PLAIN, 12));
btnAddGrade.setBounds(10, 54, 168, 28);
contentPane.add(btnAddGrade);
private void generate() {
//do something here
}
答案 0 :(得分:0)
您正在从ActionListener
界面创建一个匿名类,因此它将被视为一个类。并且没有声明的方法称为" generate()
"在ActionListener
。
将generate方法的访问修饰符更改为public。它应该可以解决你的问题。
答案 1 :(得分:0)
您的generate方法似乎直接嵌套在另一个方法或构造函数中,这是Java中不允许的,因此解决方法是从该位置删除该方法并将其放在正确的类中。
另一个问题是您使用setBounds
,这意味着您使用的是null布局。虽然这不会导致您的错误,但从长远来看会对您造成伤害,并且您希望反而使用布局管理器和嵌套JPanel。