Просто чтобы указать вам в другом направлении. Вы всегда можете изменить это:
rejectFoo.addEventListener(new EventListener() {
@Override
public void actionPerformed(ActionEvent arg) {
referenceToThis.setEnabled(false); //this requires a network call
//...
referenceToThis.setEnabled(true); //the user may resume his work
}
});
к этому:
rejectFoo.addEventListener(new EventListener() {
@Override
public void actionPerformed(ActionEvent arg) {
rejectFooActionPerformed(arg);
}
});
// ... after the getFooAcceptingPanel() method
public void rejectFooActionPerformed(ActionEvent arg) {
setEnabled(false); //this requires a network call
//...
setEnabled(true); //the user may resume his work
}
Это работает, потому что вы можете вызвать this.method из своего внутреннего класса, а затем, когда вы пишете весь код действия в этом методе, вы находитесь в области действия вашего класса, а не во внутреннем классе, поэтому вам не нужно делать то, что вы заявили.
Просто пища для размышлений, я всегда предпочитаю такой подход, так как он немного чище. Поместить весь ваш код в анонимный внутренний класс - это грязно и не очень хорошая практика.