1

我有一个名为 Game 的类和一个带有以下代码的按钮

public Game(){
    (some code..)
    btn_start.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e)
                {
                               (some code..)
                    timer_task = new MyTask();
                               (some code..)
                }
            });
        }
}

我的问题是 MyTask 需要一个“游戏”类型的对象(出于各种原因)。如何将我的 actionListener 方法所在的类发送到 MyTask()?Java中有这样的东西吗?

我尝试使用.this,但它说它指的是ActionListener.

4

2 回答 2

4

尝试Game.this改用

这基本上告诉 Java 使用外部类this引用

于 2012-09-14T22:51:13.543 回答
1

您可能需要考虑在您的类中使用私有方法Game来创建MyTask. 就像是

public void someMethod()
{
    ...
    btn_start.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {
            handleStart();
        }
    });
    ...
}

private void handleStart()
{
    (some code..)
    timer_task = new MyTask(this);
    (some code..)
}
于 2012-09-14T22:55:19.787 回答