我有一个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”
答案 0 :(得分:8)
MessageFrameListener.this
答案 1 :(得分:1)
使用:
lf.removeMFL(MessageFrameListener.this);
答案 2 :(得分:1)
在内部类本身中,您可以使用
MessageFrameListener.this;
您还可以向外层类添加方法
public MessageFrameListener getInstance() {
return this;
}