component.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 2,221 行 · 第 1/5 页

JAVA
2,221
字号
		if (config == null) {
			return null;
		} else {
			return config.createCompatibleImage(width, height);
		}
	}

	/**
	 * Creates an image with the specified width and height for use in
	 * double buffering. Headless environments do not support images.
	 *
	 * @param width the width of the image
	 * @param height the height of the image
	 * @return the requested image, or null if it is not supported
	 * @since 1.4
	 */
	public VolatileImage createVolatileImage(int width, int height) {
		if (GraphicsEnvironment.isHeadless())
			return null;
		GraphicsConfiguration config = getGraphicsConfiguration();
		return config == null ? null : config.createCompatibleVolatileImage(width, height);
	}

	/**
	 * Creates an image with the specified width and height for use in
	 * double buffering. Headless environments do not support images. The image
	 * will support the specified capabilities.
	 *
	 * @param width the width of the image
	 * @param height the height of the image
	 * @param caps the requested capabilities
	 * @return the requested image, or null if it is not supported
	 * @throws AWTException if a buffer with the capabilities cannot be created
	 * @since 1.4
	 */
	public VolatileImage createVolatileImage(int width, int height, ImageCapabilities caps) throws AWTException {
		if (GraphicsEnvironment.isHeadless())
			return null;
		GraphicsConfiguration config = getGraphicsConfiguration();
		return config == null ? null : config.createCompatibleVolatileImage(width, height, caps);
	}

	/**
	 * Prepares the specified image for rendering on this component.
	 *
	 * @param image the image to prepare for rendering
	 * @param observer the observer to notify of image preparation status
	 * @return true if the image is already fully prepared
	 * @throws NullPointerException if image is null
	 */
	public boolean prepareImage(Image image, ImageObserver observer) {
		return prepareImage(image, image.getWidth(observer), image.getHeight(observer), observer);
	}

	/**
	 * Prepares the specified image for rendering on this component at the
	 * specified scaled width and height
	 *
	 * @param image the image to prepare for rendering
	 * @param width the scaled width of the image
	 * @param height the scaled height of the image
	 * @param observer the observer to notify of image preparation status
	 * @return true if the image is already fully prepared
	 */
	public boolean prepareImage(Image image, int width, int height, ImageObserver observer) {
		return peer.prepareImage(image, width, height, observer);
	}

	/**
	 * Returns the status of the loading of the specified image. The value
	 * returned will be those flags defined in <code>ImageObserver</code>.
	 *
	 * @param image the image to check on
	 * @param observer the observer to notify of image loading progress
	 * @return the image observer flags indicating the status of the load
	 * @see #prepareImage(Image, int, int, ImageObserver)
	 * @see #Toolkit#checkImage(Image, int, int, ImageObserver)
	 * @throws NullPointerException if image is null
	 */
	public int checkImage(Image image, ImageObserver observer) {
		return checkImage(image, image.getWidth(observer), image.getHeight(observer), observer);
	}

	/**
	 * Returns the status of the loading of the specified image. The value
	 * returned will be those flags defined in <code>ImageObserver</code>.
	 *
	 * @param image the image to check on
	 * @param width the scaled image width
	 * @param height the scaled image height
	 * @param observer the observer to notify of image loading progress
	 * @return the image observer flags indicating the status of the load
	 * @see #prepareImage(Image, int, int, ImageObserver)
	 * @see #Toolkit#checkImage(Image, int, int, ImageObserver)
	 */
	public int checkImage(Image image, int width, int height, ImageObserver observer) {
		if (peer != null)
			return peer.checkImage(image, width, height, observer);
		return getToolkit().checkImage(image, width, height, observer);
	}

	/**
	 * Sets whether paint messages delivered by the operating system should be
	 * ignored. This does not affect messages from AWT, except for those
	 * triggered by OS messages. Setting this to true can allow faster
	 * performance in full-screen mode or page-flipping.
	 *
	 * @param ignoreRepaint the new setting for ignoring repaint events
	 * @see #getIgnoreRepaint()
	 * @see BufferStrategy
	 * @see GraphicsDevice.setFullScreenWindow(Window)
	 * @since 1.4
	 */
	public void setIgnoreRepaint(boolean ignoreRepaint) {
		this.ignoreRepaint = ignoreRepaint;
	}

	/**
	 * Test whether paint events from the operating system are ignored.
	 *
	 * @return the status of ignoring paint events
	 * @see #setIgnoreRepaint(boolean)
	 * @since 1.4
	 */
	public boolean getIgnoreRepaint() {
		return ignoreRepaint;
	}

	/**
	 * Tests whether or not the specified point is contained within this
	 * component. Coordinates are relative to this component.
	 *
	 * @param x the X coordinate of the point to test
	 * @param y the Y coordinate of the point to test
	 * @return true if the point is within this component
	 * @see #getComponentAt(int, int)
	 */
	public boolean contains(int x, int y) {
		return x >= 0 && y >= 0 && x < width && y < height;
	}

	/**
	 * Tests whether or not the specified point is contained within this
	 * component. Coordinates are relative to this component.
	 *
	 * @param x the X coordinate of the point to test
	 * @param y the Y coordinate of the point to test
	 * @return true if the point is within this component
	 * @deprecated use {@link #contains(int, int)} instead
	 */
	public boolean inside(int x, int y) {
		return contains(x, y);
	}

	/**
	 * Tests whether or not the specified point is contained within this
	 * component. Coordinates are relative to this component.
	 *
	 * @param p the point to test
	 * @return true if the point is within this component
	 * @throws NullPointerException if p is null
	 * @see #getComponentAt(Point)
	 * @since 1.1
	 */
	public boolean contains(Point p) {
		return contains(p.x, p.y);
	}

	/**
	 * Returns the component occupying the position (x,y). This will either
	 * be this component, an immediate child component, or <code>null</code>
	 * if neither of the first two occupies the specified location.
	 *
	 * @param x the X coordinate to search for components at
	 * @param y the Y coordinate to search for components at
	 * @return the component at the specified location, or null
	 * @see #contains(int, int)
	 */
	public Component getComponentAt(int x, int y) {
		return contains(x, y) ? this : null;
	}

	/**
	 * Returns the component occupying the position (x,y). This will either
	 * be this component, an immediate child component, or <code>null</code>
	 * if neither of the first two occupies the specified location.
	 *
	 * @param x the X coordinate to search for components at
	 * @param y the Y coordinate to search for components at
	 * @return the component at the specified location, or null
	 * @deprecated use {@link #getComponentAt(int, int)} instead
	 */
	public Component locate(int x, int y) {
		return getComponentAt(x, y);
	}

	/**
	 * Returns the component occupying the position (x,y). This will either
	 * be this component, an immediate child component, or <code>null</code>
	 * if neither of the first two occupies the specified location.
	 *
	 * @param p the point to search for components at
	 * @return the component at the specified location, or null
	 * @throws NullPointerException if p is null
	 * @see #contains(Point)
	 * @since 1.1
	 */
	public Component getComponentAt(Point p) {
		return getComponentAt(p.x, p.y);
	}

	/**
	 * AWT 1.0 event dispatcher.
	 *
	 * @param e the event to dispatch
	 * @deprecated use {@link #dispatchEvent(AWTEvent)} instead
	 */
	public void deliverEvent(Event e) {
		// XXX Add backward compatibility handling.
	}

	/**
	 * Forwards AWT events to processEvent() if:<ul>
	 * <li>Events have been enabled for this type of event via
	 * <code>enableEvents()</code></li>,
	 * <li>There is at least one registered listener for this type of event</li>
	 * </ul>
	 *
	 * @param e the event to dispatch
	 */
	public final void dispatchEvent(AWTEvent e) {
		// Some subclasses in the AWT package need to override this behavior,
		// hence the use of dispatchEventImpl().
		dispatchEventImpl(e);
		if (peer != null && !e.consumed)
			peer.handleEvent(e);
	}

	/**
	 * AWT 1.0 event dispatcher.
	 *
	 * @param e the event to dispatch
	 * @return false: since the method was deprecated, the return has no meaning
	 * @deprecated use {@link #dispatchEvent(AWTEvent)} instead
	 */
	public boolean postEvent(Event e) {
		// XXX Add backward compatibility handling.
		return false;
	}

	/**
	 * Adds the specified listener to this component. This is harmless if the
	 * listener is null, but if the listener has already been registered, it
	 * will now be registered twice.
	 *
	 * @param listener the new listener to add
	 * @see ComponentEvent
	 * @see #removeComponentListener(ComponentListener)
	 * @see #getComponentListeners()
	 * @since 1.1
	 */
	public synchronized void addComponentListener(ComponentListener l) {
		componentListener = AWTEventMulticaster.add(componentListener, l);
		if (componentListener != null)
			enableEvents(AWTEvent.COMPONENT_EVENT_MASK);
	}

	/**
	 * Removes the specified listener from the component. This is harmless if
	 * the listener was not previously registered.
	 *
	 * @param listener the listener to remove
	 * @see ComponentEvent
	 * @see #addComponentListener(ComponentListener)
	 * @see #getComponentListeners()
	 * @since 1.1
	 */
	public synchronized void removeComponentListener(ComponentListener l) {
		componentListener = AWTEventMulticaster.remove(componentListener, l);
	}

	/**
	 * Returns an array of all specified listeners registered on this component.
	 *
	 * @return an array of listeners
	 * @see #addComponentListener(ComponentListener)
	 * @see #removeComponentListener(ComponentListener)
	 * @since 1.4
	 */
	public synchronized ComponentListener[] getComponentListeners() {
		return (ComponentListener[]) AWTEventMulticaster.getListeners(componentListener, ComponentListener.class);
	}

	/**
	 * Adds the specified listener to this component. This is harmless if the
	 * listener is null, but if the listener has already been registered, it
	 * will now be registered twice.
	 *
	 * @param listener the new listener to add
	 * @see FocusEvent
	 * @see #removeFocusListener(FocusListener)
	 * @see #getFocusListeners()
	 * @since 1.1
	 */
	public synchronized void addFocusListener(FocusListener l) {
		focusListener = AWTEventMulticaster.add(focusListener, l);
		if (focusListener != null)
			enableEvents(AWTEvent.FOCUS_EVENT_MASK);
	}

	/**
	 * Removes the specified listener from the component. This is harmless if
	 * the listener was not previously registered.
	 *
	 * @param listener the listener to remove
	 * @see FocusEvent
	 * @see #addFocusListener(FocusListener)
	 * @see #getFocusListeners()
	 * @since 1.1
	 */
	public synchronized void removeFocusListener(FocusListener l) {
		focusListener = AWTEventMulticaster.remove(focusListener, l);
	}

	/**
	 * Returns an array of all specified listeners registered on this component.
	 *
	 * @return an array of listeners
	 * @see #addFocusListener(FocusListener)
	 * @see #removeFocusListener(FocusListener)
	 * @since 1.4
	 */
	public synchronized FocusListener[] getFocusListeners() {
		return (FocusListener[]) AWTEventMulticaster.getListeners(focusListener, FocusListener.class);
	}

	/**
	 * Adds the specified listener to this component. This is harmless if the
	 * listener is null, but if the listener has already been registered, it
	 * will now be registered twice.
	 *
	 * @param listener the new listener to add
	 * @see HierarchyEvent
	 * @see #removeHierarchyListener(HierarchyListener)
	 * @see #getHierarchyListeners()
	 * @since 1.3
	 */
	public synchronized void addHierarchyListener(HierarchyListener l) {
		hierarchyListener = AWTEventMulticaster.add(hierarchyListener, l);
		if (hierarchyListener != null)
			enableEvents(AWTEvent.HIERARCHY_EVENT_MASK);
	}

	/**
	 * Removes the specified listener from the component. This is harmless if
	 * the listener was not previously registered.
	 *
	 * @param listener the listener to remove
	 * @see HierarchyEvent
	 * @see #addHierarchyListener(HierarchyListener)
	 * @see #getHierarchyListeners()
	 * @since 1.3
	 */
	public synchronized void removeHierarchyListener(HierarchyListener l) {
		hierarchyListener = AWTEventMulticaster.remove(hierarchyListener, l);
	}

	/**
	 * Returns an array of all specified listeners registered on this component.
	 *
	 * @return an array of listeners
	 * @see #addHierarchyListener(HierarchyListener)
	 * @see #removeHierarchyListener(HierarchyListener)
	 * @since 1.4
	 */
	public synchronized HierarchyListener[] getHierarchyListeners() {
		return (HierarchyListener[]) AWTEventMulticaster.getListeners(hierarchyListener, HierarchyListener.class);
	}

	/**
	 * Adds the specified listener to this component. This is harmless if the
	 * listener is null, but if the listener has already been registered, it
	 * will now be registered twice.
	 *
	 * @param listener the new listener to add
	 * @see HierarchyEvent
	 * @see #removeHierarchyBoundsListener(HierarchyBoundsListener)
	 * @see #getHierarchyBoundsListeners()
	 * @since 1.3
	 */
	public synchronized void addHierarchyBoundsListener(HierarchyBoundsListener l) {
		hierarchyBoundsListener = AWTEventMulticaster.add(hierarchyBoundsListener, l);
		if (hierarchyBoundsListener != null)
			enableEvents(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK);
	}

	/**
	 * Removes the specified listener from the component. This is harmless if
	 * the listener was not previously registered.
	 *
	 * @param listener the listener to remove
	 * @see HierarchyEvent
	 * @see #addHierarchyBoundsListener(HierarchyBoundsListener)
	 * @see #getHierarchyBoundsListeners()
	 * @since 1.3
	 */
	public synchronized void removeHierarchyBoundsListener(HierarchyBoundsListener l) {
		hierarchyBoundsListener = AWTEventMulticaster.remove(hierarchyBoundsListener, l);
	}

	/**
	 * Returns an array of all specified listeners registered on this component.
	 *
	 * @return an array of listeners
	 * @see #addHierarchyBoundsListener(HierarchyBoundsListener)
	 * @see #removeHierarchyBoundsListener(HierarchyBoundsListener)
	 * @since 1.4
	 */
	public synchronized HierarchyBoundsListener[] getHierarchyBoundsListeners() {
		return (HierarchyBoundsListener[]) AWTEventMulticaster.getListeners(hierarchyBoundsListener, HierarchyBoundsListener.class);
	}

	/**
	 * Adds the specified listener to this component. This is harmless if the
	 * listener is null, but if the listener has already been registered, it
	 * will now be registered twice.
	 *
	 * @param listener the new listener to add
	 * @see KeyEvent
	 * @see #removeKeyListener(KeyListener)
	 * @see #getKeyListeners()
	 * @since 1.1
	 */
	public synchronized void addKeyListener(KeyListener l) {
		keyListener = AWTEventMulticaster.add(keyListener, l);
		if (keyListener != null)
			enableEvents(AWTEvent.KEY_EVENT_MASK);
	}

	/**
	 * Removes the specified listener from the component. This

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?