JavaTM Platform
Standard Ed. 6

javax.swing
类 JWindow

java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container
          继承者 java.awt.Window
              继承者 javax.swing.JWindow
所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer

public class JWindow
extends Window
implements Accessible, RootPaneContainer

JWindow 是一个容器,可以显示在用户桌面上的任何位置。它没有标题栏、窗口管理按钮或者其他与 JFrame 关联的修饰,但它仍然是用户桌面的“一类居民”,可以存在于桌面上的任何位置。

JWindow 组件包含一个 JRootPane 作为其仅有的子组件。contentPane 应为 JWindow 的所有子窗口的父窗口。作为一个便捷的 add 及其变体,removesetLayout 已被重写并根据需要转发到 contentPane。这意味着您可以写入:

       window.add(child);
 
该子窗口也被添加到 contentPane。contentPane 将始终为非 null。尝试将其设置为 null 将导致 JWindow 抛出异常。默认的 contentPane 将在其上设置 BorderLayout 管理器。有关添加、删除和设置 JWindowLayoutManager 的详细信息,请参阅 RootPaneContainer

有关 contentPaneglassPanelayeredPane 组件的完整描述,请参阅 JRootPane 文档。

在多屏幕环境中,可以在不同的屏幕设备上创建 JWindow。请参阅 Window 以获取更多信息。

警告:Swing 不是线程安全的。有关更多信息,请参阅 Swing's Threading Policy

警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder

另请参见:
JRootPane

嵌套类摘要
protected  class JWindow.AccessibleJWindow
          此类实现对 JWindow 类的可访问性支持。
 
从类 java.awt.Window 继承的嵌套类/接口
Window.AccessibleAWTWindow
 
从类 java.awt.Container 继承的嵌套类/接口
Container.AccessibleAWTContainer
 
从类 java.awt.Component 继承的嵌套类/接口
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
字段摘要
protected  AccessibleContext accessibleContext
          可访问的上下文属性。
protected  JRootPane rootPane
          管理此框架的 contentPane 和可选 menuBar 以及 glassPaneJRootPane 实例。
protected  boolean rootPaneCheckingEnabled
          如果为 true,则对 addsetLayout 的调用将转发到 contentPane
 
从类 java.awt.Component 继承的字段
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
从接口 java.awt.image.ImageObserver 继承的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
构造方法摘要
JWindow()
          创建未指定所有者的窗口。
JWindow(Frame owner)
          使用指定的所有者框架创建窗口。
JWindow(GraphicsConfiguration gc)
          使用屏幕设备的指定 GraphicsConfiguration 创建窗口。
JWindow(Window owner)
          使用指定的所有者窗口创建窗口。
JWindow(Window owner, GraphicsConfiguration gc)
          使用屏幕设备的指定所有者窗口和 GraphicsConfiguration 创建窗口。
 
方法摘要
protected  void addImpl(Component comp, Object constraints, int index)
          添加指定的子 Component
protected  JRootPane createRootPane()
          由该构造方法调用以创建默认的 rootPane
 AccessibleContext getAccessibleContext()
          获取与此 JWindow 关联的 AccessibleContext。
 Container getContentPane()
          返回作为此窗口的 contentPaneContainer
 Component getGlassPane()
          返回此窗口的 glassPane Component
 Graphics getGraphics()
          为组件创建一个图形上下文。
 JLayeredPane getLayeredPane()
          返回此窗口的 layeredPane 对象。
 JRootPane getRootPane()
          返回此窗口的 rootPane 对象。
 TransferHandler getTransferHandler()
          获取 transferHandler 属性。
protected  boolean isRootPaneCheckingEnabled()
          返回对 addsetLayout 的调用是否转发到 contentPane
protected  String paramString()
          返回此 JWindow 的字符串表示形式。
 void remove(Component comp)
          从该容器中移除指定组件。
 void repaint(long time, int x, int y, int width, int height)
          在 time 毫秒内重绘此组件的指定矩形区域。
 void setContentPane(Container contentPane)
          设置此窗口的 contentPane 属性。
 void setGlassPane(Component glassPane)
          设置 glassPane 属性。
 void setLayeredPane(JLayeredPane layeredPane)
          设置 layeredPane 属性。
 void setLayout(LayoutManager manager)
          设置 LayoutManager
protected  void setRootPane(JRootPane root)
          设置此窗口的新 rootPane 对象。
protected  void setRootPaneCheckingEnabled(boolean enabled)
          设置对 addsetLayout 的调用是否转发到 contentPane
 void setTransferHandler(TransferHandler newHandler)
          设置 transferHandler 属性,该属性是支持将数据传输到此组件的机制。
 void update(Graphics g)
          调用 paint(g)
protected  void windowInit()
          由该构造方法调用以正确初始化 JWindow
 
从类 java.awt.Window 继承的方法
addNotify, addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
从类 java.awt.Container 继承的方法
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
从类 java.awt.Component 继承的方法
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

rootPane

protected JRootPane rootPane
管理此框架的 contentPane 和可选 menuBar 以及 glassPaneJRootPane 实例。

另请参见:
getRootPane(), setRootPane(javax.swing.JRootPane)

rootPaneCheckingEnabled

protected boolean rootPaneCheckingEnabled
如果为 true,则对 addsetLayout 的调用将转发到 contentPane。其最初设置为 false,但在构造 JWindow 时将被设置为 true。

另请参见:
isRootPaneCheckingEnabled(), setRootPaneCheckingEnabled(boolean), RootPaneContainer

accessibleContext

protected AccessibleContext accessibleContext
可访问的上下文属性。

构造方法详细信息

JWindow

public JWindow()
创建未指定所有者的窗口。此窗口不可获得焦点。

此构造方法将组件的区域属性设置为 JComponent.getDefaultLocale 返回的值。

抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
另请参见:
GraphicsEnvironment.isHeadless(), Window.isFocusableWindow(), JComponent.getDefaultLocale()

JWindow

public JWindow(GraphicsConfiguration gc)
使用屏幕设备的指定 GraphicsConfiguration 创建窗口。此窗口不可获得焦点。

此构造方法将组件的区域属性设置为 JComponent.getDefaultLocale 返回的值。

参数:
gc - 用以构造新窗口的 GraphicsConfiguration;如果 gc 为 null,则假定系统默认的 GraphicsConfiguration
抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
IllegalArgumentException - 如果 gc 不是来自屏幕设备。
从以下版本开始:
1.3
另请参见:
GraphicsEnvironment.isHeadless(), Window.isFocusableWindow(), JComponent.getDefaultLocale()

JWindow

public JWindow(Frame owner)
使用指定的所有者框架创建窗口。如果 ownernull,则使用共享所有者,而且此窗口不可获得焦点。而且,只有其所有者正显示在屏幕上时此窗口才可获得焦点。

此构造方法将组件的 locale 属性设置为 JComponent.getDefaultLocale 返回的值。

参数:
owner - 从中显示该窗口的框架
抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
另请参见:
GraphicsEnvironment.isHeadless(), Window.isFocusableWindow(), JComponent.getDefaultLocale()

JWindow

public JWindow(Window owner)
使用指定的所有者窗口创建窗口。只有在其所有者正显示在屏幕上时此窗口才可获得焦点。如果 ownernull,则使用共享所有者,而且此窗口不可获得焦点。

此构造方法将组件的 locale 属性设置为 JComponent.getDefaultLocale 返回的值。

参数:
owner - 从中显示该窗口的窗口
抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
另请参见:
GraphicsEnvironment.isHeadless(), Window.isFocusableWindow(), JComponent.getDefaultLocale()

JWindow

public JWindow(Window owner,
               GraphicsConfiguration gc)
使用屏幕设备的指定所有者窗口和 GraphicsConfiguration 创建窗口。如果 ownernull,则使用共享所有者,而且此窗口不可获得焦点。

此构造方法将组件的 locale 属性设置为 JComponent.getDefaultLocale 返回的值。

参数:
owner - 从中显示该窗口的窗口
gc - 用以构造新窗口的 GraphicsConfiguration;如果 gc 为 null,则假定系统默认的 GraphicsConfiguration,除非 owner 也为 null,在此情况下将使用来自共享所有者框架的 GraphicsConfiguration
抛出:
HeadlessException - 如果 GraphicsEnvironment.isHeadless() 返回 true。
IllegalArgumentException - 如果 gc 不是来自屏幕设备。
从以下版本开始:
1.3
另请参见:
GraphicsEnvironment.isHeadless(), Window.isFocusableWindow(), JComponent.getDefaultLocale()
方法详细信息

windowInit

protected void windowInit()
由该构造方法调用以正确初始化 JWindow


createRootPane

protected JRootPane createRootPane()
由该构造方法调用以创建默认的 rootPane


isRootPaneCheckingEnabled

protected boolean isRootPaneCheckingEnabled()
返回对 addsetLayout 的调用是否转发到 contentPane

返回:
如果 addsetLayout 被转发,则返回 true;否则返回 false
另请参见:
addImpl(java.awt.Component, java.lang.Object, int), setLayout(java.awt.LayoutManager), setRootPaneCheckingEnabled(boolean), RootPaneContainer

setTransferHandler

public void setTransferHandler(TransferHandler newHandler)
设置 transferHandler 属性,该属性是支持将数据传输到此组件的机制。如果该组件不支持数据传输操作,则使用 null

如果系统属性 suppressSwingDropSupportfalse(默认值),并且此组件上的当前放置目标为 null 或者不是用户设置的放置目标,那么此方法将按以下方式更改放置目标:如果 newHandlernull,则它将清除放置目标。如果不为 null,则它将安装一个新 DropTarget

注:当用于 JWindow 时,TransferHandler 只提供数据导入功能,与数据导出有关的方法当前用于 JComponent

有关更多信息,请参阅 The Java Tutorial 中的 How to Use Drag and Drop and Data Transfer 一节。

参数:
newHandler - 新 TransferHandler
从以下版本开始:
1.6
另请参见:
TransferHandler, getTransferHandler(), Component.setDropTarget(java.awt.dnd.DropTarget)

getTransferHandler

public TransferHandler getTransferHandler()
获取 transferHandler 属性。

返回:
transferHandler 属性的值
从以下版本开始:
1.6
另请参见:
TransferHandler, setTransferHandler(javax.swing.TransferHandler)

update

public void update(Graphics g)
调用 paint(g)。此方法已被重写以防止因不必要的调用而清除背景。

覆盖:
Container 中的 update
参数:
g - 要在其中进行绘制的 Graphics 上下文
另请参见:
Component.update(Graphics)

setRootPaneCheckingEnabled

protected void setRootPaneCheckingEnabled(boolean enabled)
设置对 addsetLayout 的调用是否转发到 contentPane

参数:
enabled - 如果 addsetLayout 被转发,则为 true;如果应直接在 JWindow 上操作,则为 false。
另请参见:
addImpl(java.awt.Component, java.lang.Object, int), setLayout(java.awt.LayoutManager), isRootPaneCheckingEnabled(), RootPaneContainer

addImpl

protected void addImpl(Component comp,
                       Object constraints,
                       int index)
添加指定的子 Component。重写此方法以有条件地转发对 contentPane 的调用。默认情况下,子组件被添加到 contentPane 而非框架,请参阅 RootPaneContainer 以获取详细信息。

覆盖:
Container 中的 addImpl
参数:
comp - 要增强的组件
constraints - 要考虑的限制
index - 索引
抛出:
IllegalArgumentException - 如果 index 无效
IllegalArgumentException - 如果将容器的父级添加到自身
IllegalArgumentException - 如果将一个窗口添加到窗口
另请参见:
setRootPaneCheckingEnabled(boolean), RootPaneContainer

remove

public void remove(Component comp)
从该容器中移除指定组件。如果 comp 不是 rootPane,这将把该调用转发到 contentPane。如果 comp 不是 JWindowcontentPane 的子对象,将不会执行任何操作。

覆盖:
Container 中的 remove
参数:
comp - 要移除的组件
抛出:
NullPointerException - 如果 comp 为 null
另请参见:
Container.add(java.awt.Component), RootPaneContainer

setLayout

public void setLayout(LayoutManager manager)
设置 LayoutManager。重写以有条件地将调用转发到 contentPane。有关更多信息,请参阅 RootPaneContainer

覆盖:
Container 中的 setLayout
参数:
manager - LayoutManager
另请参见:
setRootPaneCheckingEnabled(boolean), RootPaneContainer

getRootPane

public JRootPane getRootPane()
返回此窗口的 rootPane 对象。

指定者:
接口 RootPaneContainer 中的 getRootPane
返回:
此窗口的 rootPane 属性
另请参见:
setRootPane(javax.swing.JRootPane), RootPaneContainer.getRootPane()

setRootPane

protected void setRootPane(JRootPane root)
设置此窗口的新 rootPane 对象。此方法由构造方法调用。

参数:
root - 新的 rootPane 属性
另请参见:
getRootPane()

getContentPane

public Container getContentPane()
返回作为此窗口的 contentPaneContainer

指定者:
接口 RootPaneContainer 中的 getContentPane
返回:
contentPane 属性
另请参见:
setContentPane(java.awt.Container), RootPaneContainer.getContentPane()

setContentPane

public void setContentPane(Container contentPane)
设置此窗口的 contentPane 属性。此方法由构造方法调用。

指定者:
接口 RootPaneContainer 中的 setContentPane
参数:
contentPane - 新的 contentPane
抛出:
IllegalComponentStateException - (运行时异常)如果内容窗格参数为 null
另请参见:
getContentPane(), RootPaneContainer.setContentPane(java.awt.Container)

getLayeredPane

public JLayeredPane getLayeredPane()
返回此窗口的 layeredPane 对象。

指定者:
接口 RootPaneContainer 中的 getLayeredPane
返回:
layeredPane 属性
另请参见:
setLayeredPane(javax.swing.JLayeredPane), RootPaneContainer.getLayeredPane()

setLayeredPane

public void setLayeredPane(JLayeredPane layeredPane)
设置 layeredPane 属性。此方法由构造方法调用。

指定者:
接口 RootPaneContainer 中的 setLayeredPane
参数:
layeredPane - 新的 layeredPane 对象
抛出:
IllegalComponentStateException - (运行时异常)如果内容窗格参数为 null
另请参见:
getLayeredPane(), RootPaneContainer.setLayeredPane(javax.swing.JLayeredPane)

getGlassPane

public Component getGlassPane()
返回此窗口的 glassPane Component

指定者:
接口 RootPaneContainer 中的 getGlassPane
返回:
glassPane 属性
另请参见:
setGlassPane(java.awt.Component), RootPaneContainer.getGlassPane()

setGlassPane

public void setGlassPane(Component glassPane)
设置 glassPane 属性。此方法由构造方法调用。

指定者:
接口 RootPaneContainer 中的 setGlassPane
参数:
glassPane - 此窗口的 glassPane 对象
另请参见:
getGlassPane(), RootPaneContainer.setGlassPane(java.awt.Component)

getGraphics

public Graphics getGraphics()
为组件创建一个图形上下文。如果组件当前是不可显示的,则此方法返回 null

覆盖:
Component 中的 getGraphics
返回:
组件的图形上下文,如果其没有,则返回 null
从以下版本开始:
1.6
另请参见:
Component.paint(java.awt.Graphics)

repaint

public void repaint(long time,
                    int x,
                    int y,
                    int width,
                    int height)
time 毫秒内重绘此组件的指定矩形区域。有关如何处理重绘的细节,请参阅 RepaintManager

覆盖:
Component 中的 repaint
参数:
time - 更新前等待的最长时间(以毫秒为单位)
x - x 坐标
y - y 坐标
width - 宽度
height - 高度
从以下版本开始:
1.6
另请参见:
RepaintManager

paramString

protected String paramString()
返回此 JWindow 的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null

覆盖:
Container 中的 paramString
返回:
JWindow 的字符串表示形式

getAccessibleContext

public AccessibleContext getAccessibleContext()
获取与此 JWindow 关联的 AccessibleContext。对于 JWindows,AccessibleContext 采取 AccessibleJWindow 的形式。必要时创建新的 AccessibleJWindow 实例。

指定者:
接口 Accessible 中的 getAccessibleContext
覆盖:
Window 中的 getAccessibleContext
返回:
一个 AccessibleJWindow,它充当此 JWindow 的 AccessibleContext

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策