@Override public void repaint(long tm, int x, int y, int width, int height) { // This is the main repaint method, all other methods are convenience methods and simply call // this method. // This is just an observation, not a must, but seems to be true for all implementations I found // so far. if (repaintListeners != null) { // Might get called early in super constructor for (RepaintListener l : repaintListeners) { l.repaint(tm, x, y, width, height); } } super.repaint(tm, x, y, width, height); }