这对内部类起作用

时间:2012-05-20 13:49:24

标签: java

我有一个Class,它包含内部类。 我想发送值,等于顶级类,但“this”发送内部类的值。我该怎么办?

package Controller;
public class MessageFrameListener{
private MessageFrame mf;
private User us;
private Contact cn;
private Timer timer;
private Running run;
private ListFrame lf;

public MessageFrameListener(ListFrame l_f, MessageFrame m_f, User u_s, Contact c_n, Running r_n){
    run = r_n;
    mf = m_f;
    us = u_s;
    cn = c_n;
    lf = l_f;
    m_f.addButtonListener(new SButtonListener());
    m_f.addWinListener(new FrameListener());

    timer = new Timer(500,new timerListener());
    timer.start();
}


public class FrameListener implements WindowListener{

    @Override
    public void windowClosing(WindowEvent e) {
        timer.stop();
        timer = null;
        mf.close();
        lf.removeMFL(this));
    }       
}
}

所以,这一行

        lf.removeMFL(this));

发送“FrameListener”,但我想发送“MessageFrameListener”

3 个答案:

答案 0 :(得分:8)

使用qualified this

MessageFrameListener.this

答案 1 :(得分:1)

使用:

   lf.removeMFL(MessageFrameListener.this);

答案 2 :(得分:1)

在内部类本身中,您可以使用

MessageFrameListener.this;

您还可以向外层类添加方法

public MessageFrameListener getInstance() {
    return this;
}