why use final here
class MouseEvents {
public static void main(String args[]) {
final Frame mainWindow = new Frame("Main Window");
Button btnClr = new Button("Clear");
btnClr.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent
me) {
mainWindow.repaint();
}
} );
mainWindow.setSize(200,200);
mainWindow.setLayout(new FlowLayout());
mainWindow.add(btnClr);
mainWindow.setVisible (true);
mainWindow.addMouseListener(new
MyMouseAdapter(mainWindow));
}
}
class MyMouseAdapter extends MouseAdapter {
Frame FListener;
MyMouseAdapter(Frame FListener) {
this.FListener = FListener;
}
public void mouseClicked(MouseEvent me) {
FListener.getGraphics().drawString("*",me.getX(),me.getY());
}
}
The problem is that use of mainWindow (as used for the mouseClick
event of the btnClr) requires mainWindow to be final because *too*
much nesting. Why? Couldn't get it.