SwingPaintEventDispatcherpublic class SwingPaintEventDispatcher extends PaintEventDispatcher Swing's PaintEventDispatcher. If the component specified by the PaintEvent
is a top level Swing component (JFrame, JWindow, JDialog, JApplet), this
will forward the request to the RepaintManager for eventual painting. |
Fields Summary |
---|
private static final boolean | SHOW_FROM_DOUBLE_BUFFER | private static final boolean | ERASE_BACKGROUND |
Methods Summary |
---|
public java.awt.event.PaintEvent | createPaintEvent(java.awt.Component component, int x, int y, int w, int h)
SHOW_FROM_DOUBLE_BUFFER = "true".equals(AccessController.doPrivileged(
new GetPropertyAction("swing.showFromDoubleBuffer", "true")));
ERASE_BACKGROUND = AccessController.doPrivileged(
new GetBooleanAction("swing.nativeErase"));
if (component instanceof RootPaneContainer) {
AppContext appContext = SunToolkit.targetToAppContext(component);
RepaintManager rm = RepaintManager.currentManager(appContext);
if (!SHOW_FROM_DOUBLE_BUFFER ||
!rm.show((Container)component, x, y, w, h)) {
rm.nativeAddDirtyRegion(appContext, (Container)component,
x, y, w, h);
}
// For backward compatibility generate an empty paint
// event. Not doing this broke parts of Netbeans.
return new IgnorePaintEvent(component, PaintEvent.PAINT,
new Rectangle(x, y, w, h));
}
else if (component instanceof SwingHeavyWeight) {
AppContext appContext = SunToolkit.targetToAppContext(component);
RepaintManager rm = RepaintManager.currentManager(appContext);
rm.nativeAddDirtyRegion(appContext, (Container)component,
x, y, w, h);
return new IgnorePaintEvent(component, PaintEvent.PAINT,
new Rectangle(x, y, w, h));
}
return super.createPaintEvent(component, x, y, w, h);
| public boolean | queueSurfaceDataReplacing(java.awt.Component c, java.lang.Runnable r)
if (c instanceof RootPaneContainer) {
AppContext appContext = SunToolkit.targetToAppContext(c);
RepaintManager.currentManager(appContext).
nativeQueueSurfaceDataRunnable(appContext, c, r);
return true;
}
return super.queueSurfaceDataReplacing(c, r);
| public boolean | shouldDoNativeBackgroundErase(java.awt.Component c)
return ERASE_BACKGROUND || !(c instanceof RootPaneContainer);
|
|