Java Swing调用ActionListener之外的方法

时间:2017-03-25 20:06:25

标签: java swing

我试图在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
}

2 个答案:

答案 0 :(得分:0)

您正在从ActionListener界面创建一个匿名类,因此它将被视为一个类。并且没有声明的方法称为" generate()"在ActionListener

将generate方法的访问修饰符更改为public。它应该可以解决你的问题。

答案 1 :(得分:0)

您的generate方法似乎直接嵌套在另一个方法或构造函数中,这是Java中不允许的,因此解决方法是从该位置删除该方法并将其放在正确的类中。

另一个问题是您使用setBounds,这意味着您使用的是null布局。虽然这不会导致您的错误,但从长远来看会对您造成伤害,并且您希望反而使用布局管理器和嵌套JPanel。