4

内部クラスを含むクラスがあります。トップクラスに相当する値を送信したいのですが、「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」を送りたい

4

3 に答える 3

8

修飾thisされたを使用します:

MessageFrameListener.this
于 2012-05-20T13:51:45.657 に答える
1

使用する:

   lf.removeMFL(MessageFrameListener.this);
于 2012-05-20T13:53:27.700 に答える
1

内部クラス自体の中で、次を使用できます

MessageFrameListener.this;

外部クラスにメソッドを追加することもできます

public MessageFrameListener getInstance() {
    return this;
}
于 2012-05-20T13:54:20.477 に答える