< prev index next >
src/java.desktop/share/classes/java/awt/Component.java
Print this page
*** 1,7 ****
/*
! * Copyright (c) 1995, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 22,90 ****
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package java.awt;
! import java.io.PrintStream;
! import java.io.PrintWriter;
! import java.util.Objects;
! import java.util.Vector;
! import java.util.Locale;
! import java.util.EventListener;
! import java.util.HashSet;
! import java.util.Map;
! import java.util.Set;
! import java.util.Collections;
! import java.awt.peer.ComponentPeer;
! import java.awt.peer.ContainerPeer;
! import java.awt.peer.LightweightPeer;
import java.awt.image.BufferStrategy;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
- import java.awt.image.ColorModel;
import java.awt.image.VolatileImage;
! import java.awt.event.*;
! import java.io.Serializable;
! import java.io.ObjectOutputStream;
! import java.io.ObjectInputStream;
! import java.io.IOException;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.Transient;
! import java.awt.im.InputContext;
! import java.awt.im.InputMethodRequests;
! import java.awt.dnd.DropTarget;
! import java.security.AccessController;
import java.security.AccessControlContext;
! import javax.accessibility.*;
! import java.applet.Applet;
import javax.swing.JComponent;
import javax.swing.JRootPane;
- import sun.awt.ComponentFactory;
- import sun.security.action.GetPropertyAction;
- import sun.awt.AppContext;
import sun.awt.AWTAccessor;
import sun.awt.ConstrainableGraphics;
import sun.awt.SubRegionShowable;
import sun.awt.SunToolkit;
- import sun.awt.EmbeddedFrame;
import sun.awt.dnd.SunDropTargetEvent;
import sun.awt.im.CompositionArea;
import sun.font.FontManager;
import sun.font.FontManagerFactory;
import sun.font.SunFontManager;
import sun.java2d.SunGraphics2D;
import sun.java2d.pipe.Region;
- import sun.awt.image.VSyncedBSManager;
import sun.java2d.pipe.hw.ExtendedBufferCapabilities;
! import static sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType.*;
! import sun.awt.RequestFocusController;
! import sun.java2d.SunGraphicsEnvironment;
import sun.swing.SwingAccessor;
import sun.util.logging.PlatformLogger;
/**
* A <em>component</em> is an object having a graphical representation
* that can be displayed on the screen and that can interact with the
* user. Examples of components are the buttons, checkboxes, and scrollbars
* of a typical graphical user interface. <p>
--- 22,121 ----
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package java.awt;
! import java.applet.Applet;
! import java.awt.dnd.DropTarget;
! import java.awt.event.ActionEvent;
! import java.awt.event.AdjustmentEvent;
! import java.awt.event.ComponentEvent;
! import java.awt.event.ComponentListener;
! import java.awt.event.FocusEvent;
! import java.awt.event.FocusListener;
! import java.awt.event.HierarchyBoundsListener;
! import java.awt.event.HierarchyEvent;
! import java.awt.event.HierarchyListener;
! import java.awt.event.InputEvent;
! import java.awt.event.InputMethodEvent;
! import java.awt.event.InputMethodListener;
! import java.awt.event.ItemEvent;
! import java.awt.event.KeyEvent;
! import java.awt.event.KeyListener;
! import java.awt.event.MouseEvent;
! import java.awt.event.MouseListener;
! import java.awt.event.MouseMotionListener;
! import java.awt.event.MouseWheelEvent;
! import java.awt.event.MouseWheelListener;
! import java.awt.event.PaintEvent;
! import java.awt.event.TextEvent;
! import java.awt.im.InputContext;
! import java.awt.im.InputMethodRequests;
import java.awt.image.BufferStrategy;
+ import java.awt.image.ColorModel;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.awt.image.VolatileImage;
! import java.awt.peer.ComponentPeer;
! import java.awt.peer.ContainerPeer;
! import java.awt.peer.LightweightPeer;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.Transient;
! import java.io.IOException;
! import java.io.ObjectInputStream;
! import java.io.ObjectOutputStream;
! import java.io.PrintStream;
! import java.io.PrintWriter;
! import java.io.Serializable;
import java.security.AccessControlContext;
! import java.security.AccessController;
! import java.util.Collections;
! import java.util.EventListener;
! import java.util.HashSet;
! import java.util.Locale;
! import java.util.Map;
! import java.util.Objects;
! import java.util.Set;
! import java.util.Vector;
!
! import javax.accessibility.Accessible;
! import javax.accessibility.AccessibleComponent;
! import javax.accessibility.AccessibleContext;
! import javax.accessibility.AccessibleRole;
! import javax.accessibility.AccessibleSelection;
! import javax.accessibility.AccessibleState;
! import javax.accessibility.AccessibleStateSet;
import javax.swing.JComponent;
import javax.swing.JRootPane;
import sun.awt.AWTAccessor;
+ import sun.awt.AppContext;
+ import sun.awt.ComponentFactory;
import sun.awt.ConstrainableGraphics;
+ import sun.awt.EmbeddedFrame;
+ import sun.awt.RequestFocusController;
import sun.awt.SubRegionShowable;
import sun.awt.SunToolkit;
import sun.awt.dnd.SunDropTargetEvent;
import sun.awt.im.CompositionArea;
+ import sun.awt.image.VSyncedBSManager;
import sun.font.FontManager;
import sun.font.FontManagerFactory;
import sun.font.SunFontManager;
import sun.java2d.SunGraphics2D;
+ import sun.java2d.SunGraphicsEnvironment;
import sun.java2d.pipe.Region;
import sun.java2d.pipe.hw.ExtendedBufferCapabilities;
! import sun.security.action.GetPropertyAction;
import sun.swing.SwingAccessor;
import sun.util.logging.PlatformLogger;
+ import static sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType
+ .VSYNC_DEFAULT;
+ import static sun.java2d.pipe.hw.ExtendedBufferCapabilities.VSyncType.VSYNC_ON;
+
/**
* A <em>component</em> is an object having a graphical representation
* that can be displayed on the screen and that can interact with the
* user. Examples of components are the buttons, checkboxes, and scrollbars
* of a typical graphical user interface. <p>
*** 1127,1161 ****
addNotify();
}
}
}
! boolean updateGraphicsData(GraphicsConfiguration gc) {
! checkTreeLock();
!
! if (graphicsConfig == gc) {
! return false;
! }
GraphicsConfiguration oldConfig = graphicsConfig;
! graphicsConfig = gc;
!
/*
! * If component is moved from one screen to another sceeen
! * graphicsConfiguration property is fired to enable the component
! * to recalculate any rendering data, if needed
*/
- if (oldConfig != null && gc != null) {
firePropertyChange("graphicsConfiguration", oldConfig, gc);
}
ComponentPeer peer = this.peer;
if (peer != null) {
return peer.updateGraphicsData(gc);
}
return false;
}
/**
* Checks that this component's {@code GraphicsDevice}
* {@code idString} matches the string argument.
*/
void checkGD(String stringID) {
--- 1158,1203 ----
addNotify();
}
}
}
! final boolean updateGraphicsData(GraphicsConfiguration gc) {
GraphicsConfiguration oldConfig = graphicsConfig;
! // First, update own graphics configuration
! boolean ret = updateSelfGraphicsData(gc);
! // Second, update children graphics configurations
! ret |= updateChildGraphicsData(gc);
! // Third, fire PropertyChange if needed
! if (oldConfig != gc) {
/*
! * If component is moved from one screen to another screen or shown
! * for the first time graphicsConfiguration property is fired to
! * enable the component to recalculate any rendering data, if needed
*/
firePropertyChange("graphicsConfiguration", oldConfig, gc);
}
+ return ret;
+ }
+
+ private boolean updateSelfGraphicsData(GraphicsConfiguration gc) {
+ checkTreeLock();
+ if (graphicsConfig == gc) {
+ return false;
+ }
+ graphicsConfig = gc;
ComponentPeer peer = this.peer;
if (peer != null) {
return peer.updateGraphicsData(gc);
}
return false;
}
+ boolean updateChildGraphicsData(GraphicsConfiguration gc) {
+ return false;
+ }
+
/**
* Checks that this component's {@code GraphicsDevice}
* {@code idString} matches the string argument.
*/
void checkGD(String stringID) {
< prev index next >