public class Window extends Container implements Accessible
Window对象是没有边框的顶级窗口,没有菜单栏。
窗口的默认布局为BorderLayout 。
构建窗口时,窗口必须有一个框架,对话框或其他窗口,作为其所有者。
在多屏幕环境中,你可以创建一个Window通过构建不同的屏幕设备上Window与Window(Window, GraphicsConfiguration) 。 GraphicsConfiguration对象是目标屏幕设备的GraphicsConfiguration对象之一。
在桌面区域可跨越多个物理屏幕设备的虚拟设备多屏幕环境中,所有配置的边界都相对于虚拟设备坐标系。 虚拟坐标系的原点位于主物理屏幕的左上角。 根据虚拟设备中主屏幕的位置,可以使用负坐标,如下图所示。

在这样的环境中,当调用setLocation时,必须将虚拟坐标传递给此方法。 同样,调用getLocationOnScreen上Window返回虚拟设备坐标。 调用getBounds一个的方法GraphicsConfiguration找到它的起源在虚拟坐标系统相同。
下面的代码设定的位置Window在(10,10)相对于所述相应的物理屏幕的原点GraphicsConfiguration 。 如果GraphicsConfiguration的边界未被考虑, Window位置将相对于虚拟坐标系设置为(10,10),并将出现在主物理屏幕上,这可能与物理屏幕不同指定为GraphicsConfiguration 。
Window w = new Window(Window owner, GraphicsConfiguration gc);
Rectangle bounds = gc.getBounds();
w.setLocation(10 + bounds.x, 10 + bounds.y);
注意:顶级窗口的位置和大小(包括Window s, Frame s和Dialog )位于桌面窗口管理系统的控制之下。 拨打setLocation , setSize和setBounds是转发到窗口管理系统的请求(不是指令)。 将竭尽全力履行这些要求。 然而,在某些情况下,窗口管理系统可能会忽略此类请求,或者修改所请求的几何,以便以更符合桌面设置的方式放置和Window 。
由于本地事件处理的异步特性,结果被返回getBounds , getLocation , getLocationOnScreen和getSize ,直到最后一个请求已被处理可能不反映屏幕上Window的实际几何结构。 在处理后续请求期间,窗口管理系统满足请求时,这些值可能会相应地更改。
应用可为一个不可见的大小和位置Window任意,但窗口管理系统可以随后改变其大小和/或位置时, Window变得可见。 将生成一个或多个ComponentEvent ,以指示新几何。
Windows能够生成以下WindowEvents:WindowOpened,WindowClosed,WindowGainedFocus,WindowLostFocus。
WindowEvent , addWindowListener(java.awt.event.WindowListener) , BorderLayout , Serialized Form
| Modifier and Type | Class and Description |
|---|---|
protected class |
Window.AccessibleAWTWindow
该类实现对
Window类的辅助功能支持。
|
static class |
Window.Type
枚举可用的
窗口类型 。
|
Container.AccessibleAWTContainerComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategyaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description |
|---|
Window(Frame owner)
构造一个新的,最初不可见的窗口,其指定的
Frame为
Frame 。
|
Window(Window owner)
构造一个新的,最初看不见的窗口,其指定的
Window为
Window 。
|
Window(Window owner, GraphicsConfiguration gc)
构造一个新的,最初不可见的窗口,其中指定的所有者为
Window和屏幕设备的
GraphicsConfiguration 。
|
| Modifier and Type | Method and Description |
|---|---|
void |
addNotify()
通过创建与其本机屏幕资源的连接,使此窗口可显示。
|
void |
addPropertyChangeListener(PropertyChangeListener listener)
将PropertyChangeListener添加到侦听器列表。
|
void |
addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
将PropertyChangeListener添加到特定属性的侦听器列表中。
|
void |
addWindowFocusListener(WindowFocusListener l)
添加指定的窗口焦点侦听器以从此窗口接收窗口事件。
|
void |
addWindowListener(WindowListener l)
添加指定的窗口侦听器以从此窗口接收窗口事件。
|
void |
addWindowStateListener(WindowStateListener l)
添加指定的窗口状态侦听器以从此窗口接收窗口事件。
|
void |
applyResourceBundle(ResourceBundle rb)
已弃用
截至J2SE 1.4,由
Component.applyComponentOrientation替代 。
|
void |
applyResourceBundle(String rbName)
已弃用
截至J2SE 1.4,由
Component.applyComponentOrientation替代 。
|
void |
createBufferStrategy(int numBuffers)
为此组件创建一个新的多缓冲策略。
|
void |
createBufferStrategy(int numBuffers, BufferCapabilities caps)
在此组件上创建一个新策略,以实现所需的缓冲功能。
|
void |
dispose()
释放此
Window ,其子组件及其所有子集所使用的所有本地屏幕资源。
|
AccessibleContext |
getAccessibleContext()
获取与此窗口关联的AccessibleContext。
|
Color |
getBackground()
获取此窗口的背景颜色。
|
BufferStrategy |
getBufferStrategy()
返回此
BufferStrategy使用的BufferStrategy。
|
boolean |
getFocusableWindowState()
返回此窗口是否可以成为焦点窗口,如果它符合列出的其他要求
isFocusableWindow 。
|
Container |
getFocusCycleRootAncestor()
始终返回 null ,因为Windows没有祖先;
它们代表组件层次结构的顶部。
|
Component |
getFocusOwner()
如果此窗口被聚焦,则返回此窗口的具有焦点的子组件;
否则返回null。
|
Set<AWTKeyStroke> |
getFocusTraversalKeys(int id)
获取此窗口的焦点遍历键。
|
List<Image> |
getIconImages()
返回要显示为此窗口的图标的图像序列。
|
InputContext |
getInputContext()
获取此窗口的输入上下文。
|
<T extends EventListener> |
getListeners(类<T> listenerType)
返回当前注册为
FooListener的所有对象的数组,在此
Window 。
|
Locale |
getLocale()
获取与此窗口相关
Locale对象,如果已设置了语言环境。
|
Dialog.ModalExclusionType |
getModalExclusionType()
返回此窗口的模态排除类型。
|
Component |
getMostRecentFocusOwner()
返回此窗口的子组件,该窗口将在此窗口聚焦时接收焦点。
|
float |
getOpacity()
返回窗口的不透明度。
|
Window[] |
getOwnedWindows()
返回一个包含此窗口当前拥有的所有窗口的数组。
|
Window |
getOwner()
返回此窗口的所有者。
|
static Window[] |
getOwnerlessWindows()
返回
Window创建的所有
Window的数组,该数组没有所有者。
|
Shape |
getShape()
返回窗口的形状。
|
Toolkit |
getToolkit()
返回此框架的工具包。
|
Window.Type |
getType()
返回窗口的类型。
|
String |
getWarningString()
获取此窗口显示的警告字符串。
|
WindowFocusListener[] |
getWindowFocusListeners()
返回在此窗口上注册的所有窗口焦点侦听器的数组。
|
WindowListener[] |
getWindowListeners()
返回在此窗口上注册的所有窗口侦听器的数组。
|
static Window[] |
getWindows()
返回由此应用程序创建的所有拥有和无主的所有
Window的数组。
|
WindowStateListener[] |
getWindowStateListeners()
返回在此窗口上注册的所有窗口状态侦听器的数组。
|
void |
hide()
已弃用
从JDK版本1.5开始,替换为
setVisible(boolean) 。
|
boolean |
isActive()
返回此窗口是否处于活动状态。
|
boolean |
isAlwaysOnTop()
返回此窗口是否为始终在上的窗口。
|
boolean |
isAlwaysOnTopSupported()
返回此窗口是否支持始终在线模式。
|
boolean |
isAutoRequestFocus()
返回此窗口是否应该随后显示焦点(调用
setVisible(true) )或被移动到前面(调用
toFront() )。
|
boolean |
isFocusableWindow()
返回此窗口是否可以成为关注的窗口,也就是说,此窗口或其任何子组件是否可以成为焦点所有者。
|
boolean |
isFocusCycleRoot()
始终返回
true ,因为所有Windows都必须是焦点遍历循环的根。
|
boolean |
isFocused()
返回此窗口是否聚焦。
|
boolean |
isLocationByPlatform()
如果此窗口在下一次此窗口可见时,此窗口将显示在本机窗口系统的默认位置,则返回
true 。
|
boolean |
isOpaque()
指示窗口当前是否不透明。
|
boolean |
isShowing()
检查此窗口是否在屏幕上显示。
|
boolean |
isValidateRoot()
指示此容器是否为验证根。
|
void |
pack()
使此窗口的大小适合其子组件的首选大小和布局。
|
void |
paint(Graphics g)
涂上容器
|
boolean |
postEvent(Event e)
已弃用
由JDK版本1.1替换为
dispatchEvent(AWTEvent) 。
|
protected void |
processEvent(AWTEvent e)
在此窗口处理事件。
|
protected void |
processWindowEvent(WindowEvent e)
通过将窗口事件分派到任何注册的WindowListener对象来处理窗口事件。
|
protected void |
processWindowFocusEvent(WindowEvent e)
通过将窗口焦点事件分派到任何已注册的WindowFocusListener对象来处理窗口焦点事件。
|
protected void |
processWindowStateEvent(WindowEvent e)
通过将窗口状态调度到任何已
WindowStateListener对象来处理窗口状态事件。
|
void |
removeNotify()
通过删除其与其本机屏幕资源的连接,使此容器不可显示。
|
void |
removeWindowFocusListener(WindowFocusListener l)
删除指定的窗口焦点侦听器,使其不再从此窗口接收窗口事件。
|
void |
removeWindowListener(WindowListener l)
删除指定的窗口监听器,使其不再从此窗口接收窗口事件。
|
void |
removeWindowStateListener(WindowStateListener l)
删除指定的窗口状态监听器,使其不再从此窗口接收窗口事件。
|
void |
reshape(int x, int y, int width, int height)
已弃用
从JDK 1.1版开始,由
setBounds(int, int, int, int) 。
|
void |
setAlwaysOnTop(boolean alwaysOnTop)
设置此窗口是否应始终高于其他窗口。
|
void |
setAutoRequestFocus(boolean autoRequestFocus)
设置此窗口是否应该随后显示焦点(调用
setVisible(true) )或被移动到前面(调用
toFront() )。
|
void |
setBackground(Color bgColor)
设置此窗口的背景颜色。
|
void |
setBounds(int x, int y, int width, int height)
移动并调整此组件的大小。
|
void |
setBounds(Rectangle r)
移动并调整此组件的大小以符合新的边界矩形
r 。
|
void |
setCursor(Cursor cursor)
将光标图像设置为指定的光标。
|
void |
setFocusableWindowState(boolean focusableWindowState)
设置此窗口是否可以成为关注窗口,如果它符合isFocusableWindow中列出的其他
isFocusableWindow 。
|
void |
setFocusCycleRoot(boolean focusCycleRoot)
没有因为Windows必须始终是焦点遍历循环的根源。
|
void |
setIconImage(Image image)
将要显示的图像设置为此窗口的图标。
|
void |
setIconImages(List<? extends Image> icons)
设置要显示为该窗口的图标的图像序列。
|
void |
setLocation(int x, int y)
将此组件移动到新位置。
|
void |
setLocation(Point p)
将此组件移动到新位置。
|
void |
setLocationByPlatform(boolean locationByPlatform)
设置此窗口是否应显示在本机窗口系统的默认位置或当前位置(由
getLocation返回)下一次窗口可见时。
|
void |
setLocationRelativeTo(Component c)
根据以下情况设置窗口相对于指定组件的位置。
|
void |
setMinimumSize(Dimension minimumSize)
将此窗口的最小大小设置为常量值。
|
void |
setModalExclusionType(Dialog.ModalExclusionType exclusionType)
指定此窗口的模态排除类型。
|
void |
setOpacity(float opacity)
设置窗口的不透明度。
|
void |
setShape(Shape shape)
设置窗口的形状。
|
void |
setSize(Dimension d)
调整此组件的大小,使其宽度为
d.width ,高度为
d.height 。
|
void |
setSize(int width, int height)
调整此组件的大小,使其宽度为
width ,高度为
height 。
|
void |
setType(Window.Type type)
设置窗口的类型。
|
void |
setVisible(boolean b)
Window b的值显示或隐藏此
b 。
|
void |
show()
已弃用
从JDK版本1.5开始,替换为
setVisible(boolean) 。
|
void |
toBack()
如果此窗口可见,则将此窗口发送到后面,如果该窗口是聚焦窗口或活动窗口,则可能导致其失去焦点或激活。
|
void |
toFront()
如果此窗口可见,将此窗口放在前面,并可能使其成为聚焦窗口。
|
add, add, add, add, add, addContainerListener, addImpl, 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, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTreeaction, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, 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, 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, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic Window(Frame owner)
Frame为Frame 。
除非其所有者显示在屏幕上,否则该窗口将不会对焦。
如果有一个安全管理器设置,它被调用来检查AWTPermission("showWindowWithoutWarningBanner") 。 如果该检查失败,使用SecurityException则会创建一个警告横幅。
owner -
Frame作为所有者或
null如果此窗口没有所有者
IllegalArgumentException - 如果
owner的
GraphicsConfiguration不是来自屏幕设备
HeadlessException - 当时
GraphicsEnvironment.isHeadless返回
true
GraphicsEnvironment.isHeadless() ,
isShowing()
public Window(Window owner)
Window为Window 。
除非最近拥有的屏幕上显示Frame或Dialog ,否则此窗口将不会对焦。
如果有一个安全管理器集,它被调用来检查AWTPermission("showWindowWithoutWarningBanner") 。 如果该检查失败,使用SecurityException则会创建一个警告横幅。
owner -
Window作为所有者或
null如果此窗口没有所有者
IllegalArgumentException - 如果
owner的
GraphicsConfiguration不是来自屏幕设备
HeadlessException - 当
GraphicsEnvironment.isHeadless()返回
true
GraphicsEnvironment.isHeadless() ,
isShowing()
public Window(Window owner, GraphicsConfiguration gc)
Window和屏幕设备的GraphicsConfiguration 。
除非最近拥有的屏幕上显示Frame或Dialog ,否则窗口将不会对焦。
如果有一个安全管理器设置,它被调用来检查AWTPermission("showWindowWithoutWarningBanner") 。 如果该检查失败并使用SecurityException则会创建一个警告横幅。
owner - 作为所有者的窗口或
null如果此窗口没有所有者
gc - 目标屏幕设备的GraphicsConfiguration ;
如果gc为null ,则假定系统默认值为GraphicsConfiguration
IllegalArgumentException - 如果
gc不是来自屏幕设备
HeadlessException - 当时
GraphicsEnvironment.isHeadless()返回
true
GraphicsEnvironment.isHeadless() ,
GraphicsConfiguration.getBounds() ,
isShowing()
public List<Image> getIconImages()
此方法返回内部存储的列表的副本,因此返回对象的所有操作都不会影响窗口的行为。
setIconImages(java.util.List<? extends java.awt.Image>) ,
setIconImage(Image)
public void setIconImages(List<? extends Image> icons)
getIconImages将永远返回icons列表的副本。
根据平台功能,不同尺寸的一个或多个图像将被用作窗口的图标。
icons列表从一开始就扫描最合适尺寸的图像。 如果列表包含几个相同大小的图像,则会使用第一个图像。
没有图标的无窗窗口使用platfrom-default图标。 拥有窗口的图标可以从所有者继承,除非明确覆盖。 将图标设置为null或空列表将恢复默认行为。
注意:根据上下文(例如窗口装饰,窗口列表,任务栏等),本机窗口系统可以使用不同尺寸的不同图像来表示窗口。 他们也可以仅使用单个图像进行所有上下文或根本没有图像。
icons - 要显示的图标图像的列表。
getIconImages() ,
setIconImage(Image)
public void setIconImage(Image image)
可以使用此方法代替setIconImages()将单个图像指定为窗口的图标。
以下声明:
setIconImage(image);
相当于:
ArrayList<Image> imageList = new ArrayList<Image>();
imageList.add(image);
setIconImages(imageList);
注意:根据上下文(例如窗口装饰,窗口列表,任务栏等),本机窗口系统可以使用不同尺寸的不同图像来表示窗口。 他们也可以仅使用单个图像进行所有上下文或根本没有图像。
image - 要显示的图标图像。
setIconImages(java.util.List<? extends java.awt.Image>) ,
getIconImages()
public void addNotify()
addNotify在
Container
Component.isDisplayable() ,
Container.removeNotify()
public void removeNotify()
public void pack()
setMinimumSize方法规定的最小尺寸,窗口的宽度和高度将自动放大。
如果窗口和/或其所有者不可显示,则在计算优选尺寸之前,它们都可显示。 窗口在其大小计算后验证。
public void setMinimumSize(Dimension minimumSize)
getMinimumSize总是返回此值。
如果当前窗口的大小小于minimumSize ,窗口的大小将自动放大,以符合最小尺寸。
如果之后setSize或setBounds方法,其宽度或高度小于setMinimumSize方法setMinimumSize方法,窗口将自动放大以符合minimumSize值。 minimumSize值也会影响pack方法的行为。
通过将最小尺寸参数设置为null值来恢复默认行为。
如果用户尝试将窗口的大小调整到minimumSize值以下,则调整大小操作可能会受到限制。 这种行为是平台依赖的。
setMinimumSize在
Component
minimumSize - 这个窗口的最小尺寸
Component.setMinimumSize(java.awt.Dimension) ,
Container.getMinimumSize() ,
Component.isMinimumSizeSet() ,
setSize(Dimension) ,
pack()
public void setSize(Dimension d)
d.width ,高度为d.height 。
该方法更改布局相关信息,因此使组件层次结构无效。
如果任一者小于先前致电setMinimumSize的最小大小,则d.width和d.height值将自动放大。
该方法更改几何相关数据。 因此,本地窗口系统可以忽略这样的请求,或者它可以修改所请求的数据,使得Window对象以与桌面设置紧密相对的方式被放置和定尺寸。
setSize在
Component
d - 指定此组件的新大小的维度
Component.getSize() ,
setBounds(int, int, int, int) ,
setMinimumSize(java.awt.Dimension)
public void setSize(int width,
int height)
width ,高度为height 。
该方法更改布局相关信息,因此使组件层次结构无效。
如果这些值小于先前呼叫setMinimumSize的最小大小,则width和height值将自动放大。
该方法更改几何相关数据。 因此,本地窗口系统可以忽略这样的请求,或者它可以修改所请求的数据,使得Window对象以与桌面设置紧密相对的方式放置和调整大小。
setSize在
Component
width - 该
width的新宽度(以像素为单位)
height - 该
height的新高度(以像素为单位)
Component.getSize() ,
setBounds(int, int, int, int) ,
setMinimumSize(java.awt.Dimension)
public void setLocation(int x,
int y)
x和y参数指定。
该方法更改布局相关信息,因此使组件层次结构无效。
该方法更改几何相关数据。 因此,本地窗口系统可以忽略这样的请求,或者它可以修改所请求的数据,使得Window对象以与桌面设置紧密对应的方式被放置和调整大小。
setLocation在
Component
x -新位置的左上角的父坐标空间的
X -协调
y -新位置的左上角的父坐标空间在
y -协调
Component.getLocation() ,
Component.setBounds(int, int, int, int) ,
Component.invalidate()
public void setLocation(Point p)
p 。
点p在父协调空间中给出。
该方法更改布局相关信息,因此使组件层次结构无效。
该方法更改几何相关数据。 因此,本地窗口系统可以忽略这样的请求,或者它可以修改所请求的数据,使得Window对象以与桌面设置紧密相对的方式放置和调整大小。
setLocation在
Component
p - 定义新位置左上角的点,在该组件的父项的坐标空间中给出
Component.getLocation() ,
Component.setBounds(int, int, int, int) ,
Component.invalidate()
@Deprecated public void reshape(int x, int y, int width, int height)
setBounds(int, int, int, int) 。
public void setVisible(boolean b)
Window b的值显示或隐藏此b 。
如果方法显示窗口,则在以下条件下也将窗口重点放在:
Window符合isFocusableWindow()方法中概述的要求 。 Window的autoRequestFocus属性是true价值。 Window聚焦。 autoRequestFocus属性的值)有autoRequestFocus 。
如果窗口是模态对话框,则阻止当前关注的窗口,该属性不被考虑。
除非接收到WINDOW_GAINED_FOCUS或WINDOW_ACTIVATED事件,否则开发人员绝不能假定该窗口是关注或活动的窗口。
setVisible在
Component
b - 如果true ,使Window可见,否则隐藏Window 。
如果Window和/或其所有者尚未显示,则两者均可显示。
Window将在被显示之前验证。
如果Window已经可见,这将使Window到前面。
如果false ,隐藏这个Window ,其子组件,以及其所有的所有子女。 Window及其子组件可以再次显示,呼叫#setVisible(true) 。
Component.isDisplayable() ,
Component.setVisible(boolean) ,
toFront() ,
dispose() ,
setAutoRequestFocus(boolean) ,
isFocusableWindow()
@Deprecated public void show()
setVisible(boolean) 。
show在
Component
Component.isDisplayable() ,
toFront()
@Deprecated public void hide()
setVisible(boolean) 。
show 。
public void dispose()
Window ,其子组件及其所有子集所使用的所有本地屏幕资源。
也就是说,这些Component的资源将被销毁,它们消耗的任何内存将被返回到操作系统,并且它们将被标记为不可显示。
Window及其子组件可以通过重新生成本地资源,随后调用pack或show 。 重新创建的状态Window及其子组件将等同于这些对象在其中的点的状态Window被布置(不考虑这些操作之间附加的修改)。
注意 :当Java虚拟机(VM)中的最后一个可显示的窗口被丢弃时,VM可能会终止。 见AWT Threading Issues以获取更多信息。
Component.isDisplayable() ,
pack() ,
show()
public void toFront()
将此窗口放置在堆叠顺序的顶部,并将其显示在此VM中任何其他Windows的前面。 如果此窗口不可见,将不会发生任何操作。 某些平台不允许拥有其他Windows的Windows显示在所拥有的Windows之上。 某些平台可能不允许此虚拟机将Windows位于本机应用程序的Windows或其他虚拟机的Windows上。 此权限可能取决于此VM中的窗口是否已经聚焦。 每次尝试将堆叠顺序中的该窗口移动到尽可能高的位置; 然而,开发人员不应该假设这种方法会在任何情况下将此窗口移到所有其他窗口之上。
开发人员绝对不能假定此Window是焦点或活动的窗口,直到此窗口收到WINDOW_GAINED_FOCUS或WINDOW_ACTIVATED事件为止。 在最上面的窗口是关注窗口的平台上,在以下条件下,此方法可能会将此窗口(如果尚未集中)集中起来:
isFocusableWindow()方法中的要求 。 autoRequestFocus是true价值。 如果此方法导致此窗口被聚焦,并且此窗口是框架或对话框,它也将被激活。 如果此窗口被聚焦,但它不是框架或对话框,那么作为此窗口的所有者的第一个框架或对话框将被激活。
如果此窗口被模态对话框阻止,则阻止对话框将显示在前面并保留在阻止窗口的上方。
public void toBack()
将此窗口放置在堆叠顺序的底部,并将其显示在此VM中的任何其他Windows之后。 这个窗口不可见,不会发生任何动作。 某些平台不允许其他Windows拥有的Windows显示在其所有者的下方。 每次尝试将堆叠顺序中的窗口移动到尽可能低的位置; 然而,开发人员不应该假设这种方法会将Window在所有其他窗口中移动到所有情况。
由于本机窗口系统的变化,不能保证关注和活动的Windows的更改。 开发人员绝对不能假定此窗口不再是聚焦或活动窗口,直到此窗口收到WINDOW_LOST_FOCUS或WINDOW_DEACTIVATED事件为止。 在最上面的窗口是关注窗口的平台上,这种方法可能会导致此窗口失去焦点。 在这种情况下,这个VM中的下一个最高的可调焦窗口将会得到关注。 在堆叠顺序通常不会影响聚焦窗口的平台上,此方法可能会使焦点和活动窗口保持不变。
toFront()
public Toolkit getToolkit()
getToolkit在类别
Component
Toolkit , Toolkit.getDefaultToolkit() , Component.getToolkit()
public final String getWarningString()
AWTPermission("showWindowWithoutWarningBanner") ,则窗口不安全。
如果窗口是安全的,那么getWarningString返回null 。 如果窗口不安全,则此方法将检查系统属性awt.appletWarning并返回该属性的字符串值。
public Locale getLocale()
Locale对象(如果已设置了语言环境)。
如果没有设置语言环境,则返回默认语言环境。
public InputContext getInputContext()
getInputContext在类别
Component
null如果没有上下文可以确定
Component.getInputContext()
public void setCursor(Cursor cursor)
如果Java平台实现和/或本地系统不支持更改鼠标光标的形状,该方法可能没有视觉效果。
setCursor在
Component
cursor - Cursor类定义的Cursor 。
如果此参数为空,则此窗口的光标将设置为Cursor.DEFAULT_CURSOR类型。
Component.getCursor() , Cursor
public Window getOwner()
public Window[] getOwnedWindows()
public static Window[] getWindows()
Window的所有数据。
如果从小程序调用,该数组只包含该applet可Window的Window。
警告:此方法可能会返回系统创建的窗口,如打印对话框。 应用程序不应该假定存在这些对话框,应用程序也不应该对这些对话框(例如组件位置, LayoutManager或序列化)承担任何事情。
Frame.getFrames() ,
getOwnerlessWindows()
public static Window[] getOwnerlessWindows()
Window s的数组,该数组没有所有者。
它们包括Frame和所有者Dialog和Window s。
如果从小程序调用,该数组只包含该小程序可Window的Window。
警告:此方法可能会返回系统创建的窗口,如打印对话框。 应用程序不应该假定这些对话框的存在,应用程序也不应该对这些对话框(例如组件位置, LayoutManager或序列化)承担任何事情。
Frame.getFrames() ,
getWindows()
public void setModalExclusionType(Dialog.ModalExclusionType exclusionType)
Dialog.ModalExclusionType 。
如果不支持给定类型,则使用NO_EXCLUDE 。
注意:更改可见窗口的模式排除类型可能不会有任何效果,直到它被隐藏,然后再次显示。
exclusionType - 此窗口的模态排除类型
一个null值相当于NO_EXCLUDE
SecurityException - 如果调用线程没有权限将模态排除属性设置为给定的窗口
exclusionType
Dialog.ModalExclusionType , getModalExclusionType() , Toolkit.isModalExclusionTypeSupported(java.awt.Dialog.ModalExclusionType)
public Dialog.ModalExclusionType getModalExclusionType()
Dialog.ModalExclusionType , setModalExclusionType(java.awt.Dialog.ModalExclusionType)
public void addWindowListener(WindowListener l)
l - 窗口监听器
removeWindowListener(java.awt.event.WindowListener) ,
getWindowListeners()
public void addWindowStateListener(WindowStateListener l)
l - 窗口状态侦听器
removeWindowStateListener(java.awt.event.WindowStateListener) ,
getWindowStateListeners()
public void addWindowFocusListener(WindowFocusListener l)
l - 窗口焦点侦听器
removeWindowFocusListener(java.awt.event.WindowFocusListener) ,
getWindowFocusListeners()
public void removeWindowListener(WindowListener l)
l - 窗口监听器
addWindowListener(java.awt.event.WindowListener) ,
getWindowListeners()
public void removeWindowStateListener(WindowStateListener l)
l - 窗口状态侦听器
addWindowStateListener(java.awt.event.WindowStateListener) ,
getWindowStateListeners()
public void removeWindowFocusListener(WindowFocusListener l)
l - 窗口焦点侦听器
addWindowFocusListener(java.awt.event.WindowFocusListener) ,
getWindowFocusListeners()
public WindowListener[] getWindowListeners()
WindowListener s或一个空数组,如果没有窗口监听器当前注册
addWindowListener(java.awt.event.WindowListener) ,
removeWindowListener(java.awt.event.WindowListener)
public WindowFocusListener[] getWindowFocusListeners()
WindowFocusListener s或一个空数组,如果没有窗口焦点侦听器当前注册
addWindowFocusListener(java.awt.event.WindowFocusListener) ,
removeWindowFocusListener(java.awt.event.WindowFocusListener)
public WindowStateListener[] getWindowStateListeners()
WindowStateListener s或一个空数组,如果没有窗口状态监听器当前注册
addWindowStateListener(java.awt.event.WindowStateListener) ,
removeWindowStateListener(java.awt.event.WindowStateListener)
public <T extends EventListener> T[] getListeners(类<T> listenerType)
FooListener的所有对象的数组,此对象为Window 。
FooListener是使用addFooListener方法进行注册。
您可以使用类文字指定listenerType参数,例如FooListener.class 。 例如,您可以使用以下代码查询Window w的窗口监听器:
WindowListener[] wls = (WindowListener[])(w.getListeners(WindowListener.class));
如果没有这样的侦听器存在,这个方法返回一个空数组。
getListeners在
Container
listenerType - 所请求的听众的类型;
此参数应指定从java.util.EventListener下降的java.util.EventListener
FooListener的所有对象的数组,如果没有添加此类侦听器,则为空数组
ClassCastException - 如果
listenerType没有指定实现java.util.EventListener的类或
java.util.EventListener
NullPointerException - 如果
listenerType是
null
getWindowListeners()
protected void processEvent(AWTEvent e)
WindowEvent ,它调用processWindowEvent方法,否则它调用其超类的processEvent 。
请注意,如果事件参数为null则行为未指定,可能会导致异常。
processEvent在
Container
e - 事件
Component.processComponentEvent(java.awt.event.ComponentEvent) ,
Component.processFocusEvent(java.awt.event.FocusEvent) ,
Component.processKeyEvent(java.awt.event.KeyEvent) ,
Component.processMouseEvent(java.awt.event.MouseEvent) ,
Component.processMouseMotionEvent(java.awt.event.MouseEvent) ,
Component.processInputMethodEvent(java.awt.event.InputMethodEvent) ,
Component.processHierarchyEvent(java.awt.event.HierarchyEvent) ,
Component.processMouseWheelEvent(java.awt.event.MouseWheelEvent)
protected void processWindowEvent(WindowEvent e)
addWindowListener enableEvents启用 请注意,如果事件参数为null则行为未指定,并可能导致异常。
e - 窗口事件
Component.enableEvents(long)
protected void processWindowFocusEvent(WindowEvent e)
addWindowFocusListener enableEvents启用 请注意,如果事件参数为null则行为未指定,并可能导致异常。
e - 窗口焦点事件
Component.enableEvents(long)
protected void processWindowStateEvent(WindowEvent e)
WindowStateListener对象来处理窗口状态事件。
注意:除非为此窗口启用窗口状态事件,否则不会调用此方法。
发生以下情况之一时:
WindowStateListener经由注册addWindowStateListener enableEvents启用 请注意,如果事件参数为null该行为是未指定的,可能会导致异常。
e - 窗口状态事件
Component.enableEvents(long)
public final void setAlwaysOnTop(boolean alwaysOnTop)
throws SecurityException
如果某些其他窗口已经始终在顶部,则这些窗口之间的相对顺序是未指定的(取决于平台)。 除了可能是另一个永远在上的窗口之外,没有窗户可以被覆盖在始终在上的窗口。
始终在上的窗口拥有的所有窗口都会继承此状态,并自动变为始终处于顶端状态。 如果一个窗口不再是顶级的,那么它所拥有的窗口将不再一直处于顶端。 toBack发送一个始终在上的窗口时,它始终在顶端状态设置为false 。
当在一个值为true的窗口上调用此方法时,该窗口是可见的,并且该平台在该窗口上始终支持该窗口,该窗口将立即提起来,将其“保持在最高位置”。 如果窗口当前不可见,则此方法将始终处于顶部状态设置为true但不会将窗口向前。 当窗口稍后显示时,它将始终在顶部。
当在一个值为false的窗口上调用此方法时,始终处于顶端状态被设置为正常。 它也可能导致顶级窗口的z顺序的未指定的平台依赖性变化,但其他始终在上的窗口将保持在最高位置。 在具有正常状态的窗口上调用此值为false方法不起作用。
注意 :某些平台可能不支持永远在线的窗口。 要检测当前平台是否支持始终在线的窗口,请使用Toolkit.isAlwaysOnTopSupported()和isAlwaysOnTopSupported() 。 如果此窗口不支持永远在线模式,或者此窗口的工具包不支持永远在线窗口,则调用此方法不起作用。
如果安装了SecurityManager,则调用线程必须被授予AWTPermission“setWindowAlwaysOnTop”才能设置此属性的值。 如果未授予此权限,则此方法将抛出SecurityException异常,该属性的当前值将保持不变。
alwaysOnTop - 如果窗口应该始终高于其他窗口,则为true
SecurityException - 如果调用线程没有权限设置always-on-top属性的值
isAlwaysOnTop() , toFront() , toBack() , AWTPermission , isAlwaysOnTopSupported() , getToolkit() , Toolkit.isAlwaysOnTopSupported()
public boolean isAlwaysOnTopSupported()
true ,如果此窗口支持永远在线模式,并且此窗口的工具包支持永远在线窗口,
false false
setAlwaysOnTop(boolean) ,
getToolkit() ,
Toolkit.isAlwaysOnTopSupported()
public final boolean isAlwaysOnTop()
true ,如果窗口处于始终处于顶部状态,
false false
setAlwaysOnTop(boolean)
public Component getFocusOwner()
getMostRecentFocusOwner() ,
isFocused()
public Component getMostRecentFocusOwner()
getFocusOwner() 。
如果此窗口未被聚焦,则将返回最近请求焦点的子组件。
如果没有子组件已经请求了焦点,并且这是一个可调焦窗口,则返回此窗口的初始可聚焦组件。
如果没有子组件已经请求了焦点,并且这是一个不可对焦窗口,则返回null。
getFocusOwner() ,
isFocused() ,
isFocusableWindow()
public boolean isActive()
isFocused()
public boolean isFocused()
如果对焦窗口是Frame或Dialog,它也是活动窗口。 否则,活动窗口是第一个框架或对话框,它是聚焦窗口的所有者。
isActive()
public Set<AWTKeyStroke> getFocusTraversalKeys(int id)
setFocusTraversalKeys )
如果没有为此窗口显式设置遍历键,则返回此窗口的父进程的遍历键。 如果没有为任何此窗口的祖先显式设置遍历键,则返回当前的KeyboardFocusManager的默认遍历键。
getFocusTraversalKeys在
Container
id - 一个KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
IllegalArgumentException - 如果id不是KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS或KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS中的一个
Container.setFocusTraversalKeys(int, java.util.Set<? extends java.awt.AWTKeyStroke>) ,
KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS ,
KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS ,
KeyboardFocusManager.UP_CYCLE_TRAVERSAL_KEYS ,
KeyboardFocusManager.DOWN_CYCLE_TRAVERSAL_KEYS
public final void setFocusCycleRoot(boolean focusCycleRoot)
setFocusCycleRoot在
Container
focusCycleRoot - 忽略此值
isFocusCycleRoot() ,
Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy) ,
Container.getFocusTraversalPolicy()
public final boolean isFocusCycleRoot()
true ,因为所有Windows都必须是焦点遍历循环的根。
isFocusCycleRoot在类别
Container
true
setFocusCycleRoot(boolean) ,
Container.setFocusTraversalPolicy(java.awt.FocusTraversalPolicy) ,
Container.getFocusTraversalPolicy()
public final Container getFocusCycleRootAncestor()
null ,因为Windows没有祖先;
它们代表组件层次结构的顶部。
getFocusCycleRootAncestor在
Component
null
Container.isFocusCycleRoot()
public final boolean isFocusableWindow()
true 。
对于不是可对焦的框架或对话框的窗口,其可调整的窗口状态必须设置为true ,其最近拥有的框架或对话框必须在屏幕上显示,并且必须在其焦点遍历周期中至少包含一个组件。
如果没有满足任何这些条件,那么这个Window和它的任何子组件都不能成为焦点所有者。
true如果这个窗口可以是关注的窗口;
false否则
getFocusableWindowState() ,
setFocusableWindowState(boolean) ,
isShowing() ,
Component.isFocusable()
public boolean getFocusableWindowState()
isFocusableWindow 。
如果此方法返回false ,那么isFocusableWindow也将返回false 。
如果此方法返回true ,则isFocusableWindow可能会返回true或false这取决于窗口可对焦而必须满足的其他要求。
默认情况下,所有Windows都具有可聚焦的窗口状态true 。
isFocusableWindow() ,
setFocusableWindowState(boolean) ,
isShowing() ,
Component.setFocusable(boolean)
public void setFocusableWindowState(boolean focusableWindowState)
isFocusableWindow 。
如果此窗口的可调焦窗口状态设置为false ,则isFocusableWindow将返回false 。
如果此窗口的可调焦窗口状态设置为true ,则isFocusableWindow可能会返回true或false这取决于窗口可对焦而必须满足的其他要求。
将窗口的对焦状态设置为false是应用程序向AWT标识将用作浮动调色板或工具栏的窗口的标准机制,因此应该是不可对焦的窗口。 在可见的Window上设置可聚焦状态可能会在某些平台上产生延迟效应? 实际的变化可能只有当Window变得隐藏,然后再次可见时Window发生。 为了确保跨平台的一致行为,当Window不可见时,设置Window的可重定位状态,然后显示。
focusableWindowState - 此窗口是否可以是聚焦窗口
isFocusableWindow() ,
getFocusableWindowState() ,
isShowing() ,
Component.setFocusable(boolean)
public void setAutoRequestFocus(boolean autoRequestFocus)
setVisible(true) )或被移动到前面(调用toFront() )。
请注意,可以间接调用setVisible(true)(例如,当显示窗口的所有者使窗口显示时)。 toFront()也可以间接调用(例如,当setVisible(true)被称为上已经可见窗口)。 在所有这种情况下,此属性也将生效。
属性的值不是由拥有的窗口继承。
autoRequestFocus - 这个窗口是否应该集中在随后被显示或被移动到前面
isAutoRequestFocus() ,
isFocusableWindow() ,
setVisible(boolean) ,
toFront()
public boolean isAutoRequestFocus()
setVisible(true) )或被移动到前面(调用toFront() )。
默认情况下,窗口autoRequestFocus值为true 。
autoRequestFocus价值
setAutoRequestFocus(boolean)
public void addPropertyChangeListener(PropertyChangeListener listener)
如果侦听器为空,则不会抛出异常,也不会执行任何操作。
addPropertyChangeListener在
Container
listener - 要添加的PropertyChangeListener
Component.removePropertyChangeListener(java.beans.PropertyChangeListener) ,
addPropertyChangeListener(java.lang.String,java.beans.PropertyChangeListener)
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
如果侦听器为空,则不会抛出异常,也不会执行任何操作。
addPropertyChangeListener在
Container
propertyName - 上面列出的属性名称之一
listener - 要添加的PropertyChangeListener
addPropertyChangeListener(java.beans.PropertyChangeListener) ,
Component.removePropertyChangeListener(java.beans.PropertyChangeListener)
public boolean isValidateRoot()
Window对象是验证根,因此,它们覆盖此方法以返回true 。
isValidateRoot在
Container
true
Container.isValidateRoot()
@Deprecated public boolean postEvent(Event e)
dispatchEvent(AWTEvent) 。
postEvent在界面
MenuContainer
postEvent在
Component
public boolean isShowing()
isShowing在
Component
true如果组件显示,
false false
Component.setVisible(boolean)
@Deprecated public void applyResourceBundle(ResourceBundle rb)
Component.applyComponentOrientation替代 。
@Deprecated public void applyResourceBundle(String rbName)
Component.applyComponentOrientation替代 。
public void setType(Window.Type type)
IllegalComponentStateException - 如果窗口可显示。
IllegalArgumentException - 如果类型是
null
Component.isDisplayable() ,
getType()
public Window.Type getType()
setType(java.awt.Window.Type)
public AccessibleContext getAccessibleContext()
getAccessibleContext在界面
Accessible
getAccessibleContext在
Component
public void setLocationRelativeTo(Component c)
下面提到的目标屏幕是在调用setLocationRelativeTo方法之后应该放置窗口的屏幕。
null ,或GraphicsConfiguration与此组件关联是null时,窗口被放置在屏幕的中心。 中心点可以使用GraphicsEnvironment.getCenterPoint方法获得。 null ,但它当前没有显示,则该窗口将放置在与此组件GraphicsConfiguration GraphicsConfiguration定义的目标屏幕的中心。 null并显示在屏幕上,则窗口的位置使得窗口的中心与组件的中心重合。 如果屏幕配置不允许窗口从一个屏幕移动到另一个屏幕,则窗口仅被放置在根据上述条件确定的位置,并且其GraphicsConfiguration未更改。
注意 :如果窗口的下边缘超出屏幕,则窗口放置在离屏幕中心最近的Component侧。 因此,如果组件位于屏幕的右侧,窗口将放置在左侧,反之亦然。
如果在计算了窗口位置之后,窗口的上,左或右边缘超出了屏幕,则窗口位于窗口的上,左或右边缘与屏幕的相应边缘。 如果窗口的左边缘和右边缘都不在屏幕之外,窗口将放置在屏幕的左侧。 如果顶部和底部边缘都超出屏幕,则会发生类似的放置。 在这种情况下,窗口被放置在屏幕的顶部。
该方法更改几何相关数据。 因此,本地窗口系统可以忽略这样的请求,或者它可以修改所请求的数据,使得Window对象被放置并且以与桌面设置密切对应的方式被放大。
c - 确定窗口位置的组件
GraphicsEnvironment.getCenterPoint()
public void createBufferStrategy(int numBuffers)
BufferStrategy 。
首先尝试翻页策略,然后尝试使用加速缓冲区的策略策略。
最后,使用非加速的制动策略。
每次调用此方法时,将丢弃此组件的现有缓冲区策略。
numBuffers - 要创建的缓冲区数
IllegalArgumentException - 如果numBuffers小于1。
IllegalStateException - 如果组件不可显示
Component.isDisplayable() ,
getBufferStrategy()
public void createBufferStrategy(int numBuffers,
BufferCapabilities caps)
throws AWTException
每次调用此方法时,将丢弃此组件的现有缓冲区策略。
numBuffers - 要创建的缓冲区数,包括前缓冲区
caps - 创建缓冲策略所需的功能;
不能null
AWTException - 如果提供的功能不能被支持或满足;
这可能会发生,例如,如果当前没有足够的加速内存可用,或者如果指定了页面翻转,但不可能。
IllegalArgumentException - 如果numBuffers小于1,或者如果cap是
null
getBufferStrategy()
public BufferStrategy getBufferStrategy()
BufferStrategy使用的BufferStrategy。
如果BufferStrategy尚未创建或已被处理,则此方法将返回null。
createBufferStrategy(int)
public void setLocationByPlatform(boolean locationByPlatform)
getLocation返回)下一次窗口可见时。
此行为类似于显示的本机窗口,无需以编程方式设置其位置。
大多数窗口系统如果它们的位置未被明确设置,则级联窗口。
一旦窗口显示在屏幕上,确定实际位置。
通过将系统属性“java.awt.Window.locationByPlatform”设置为“true”,也可以启用此行为,尽管此方法的调用优先。
拨打setVisible , setLocation和setBounds调用后setLocationByPlatform窗口中清除此属性。
例如,执行以下代码之后:
setLocationByPlatform(true);
setVisible(true);
boolean flag = isLocationByPlatform();
窗口将显示在平台的默认位置, flag将被显示为false 。
在以下示例中:
setLocationByPlatform(true);
setLocation(10, 10);
boolean flag = isLocationByPlatform();
setVisible(true);
窗口将显示在(10,10), flag将被显示为false 。
locationByPlatform -
true如果此窗口应该出现在默认位置,
false如果在当前位置
IllegalComponentStateException - 如果窗口显示在屏幕上,而locationByPlatform是
true 。
setLocation(int, int) ,
isShowing() ,
setVisible(boolean) ,
isLocationByPlatform() ,
System.getProperty(String)
public boolean isLocationByPlatform()
true如果此窗口将显示在本窗口系统的默认位置,下次此窗口可见时。
如果窗口显示在屏幕上,此方法总是返回false 。
setLocationByPlatform(boolean) ,
isShowing()
public void setBounds(int x,
int y,
int width,
int height)
x和y ,新尺寸由width和height 。
该方法更改布局相关信息,因此使组件层次结构无效。
如果这些值小于先前致电setMinimumSize所指定的最小尺寸,则width或height值将自动放大。
该方法更改几何相关数据。 因此,本地窗口系统可以忽略这样的请求,或者它可以修改所请求的数据,使得Window对象以与桌面设置紧密对应的方式被放置和调整大小。
setBounds在
Component
x - 这个组件的新
x坐标
y - 这个组件的新
y-坐标
width -新
width这个组件的
height -新
height这个组件的
Component.getBounds() ,
setLocation(int, int) ,
setLocation(Point) ,
setSize(int, int) ,
setSize(Dimension) ,
setMinimumSize(java.awt.Dimension) ,
setLocationByPlatform(boolean) ,
isLocationByPlatform()
public void setBounds(Rectangle r)
r 。
该组件的新职位由r.x和r.y ,其新尺寸由r.width和r.height
该方法更改布局相关信息,因此使组件层次结构无效。
r.width或r.height值将自动放大,如果小于前一次呼叫setMinimumSize的最小大小。
该方法更改几何相关数据。 因此,本地窗口系统可以忽略这样的请求,或者它可以修改所请求的数据,使得Window对象被放置并且以与桌面设置紧密相对应的方式进行调整。
setBounds在类别
Component
r - 此组件的新的边界矩形
Component.getBounds() ,
setLocation(int, int) ,
setLocation(Point) ,
setSize(int, int) ,
setSize(Dimension) ,
setMinimumSize(java.awt.Dimension) ,
setLocationByPlatform(boolean) ,
isLocationByPlatform()
public float getOpacity()
setOpacity(float) , GraphicsDevice.WindowTranslucency
public void setOpacity(float opacity)
不透明度值在[0..1]的范围内。 请注意,设置不透明度级别为0可能会禁用此窗口上的鼠标事件处理。 这是依赖于平台的行为。
必须满足以下条件才能设置不透明度值小于1.0f :
TRANSLUCENT半透明度必须由底层系统支持 Frame.setUndecorated(boolean)和Dialog.setUndecorated(boolean) ) GraphicsDevice.setFullScreenWindow(Window) ) 如果请求的不透明度值小于1.0f ,并且不符合上述任何条件,窗口不透明度将不会更改,并且IllegalComponentStateException将被抛出。
单个像素的半透明度也可以通过其颜色的α分量(参见setBackground(Color) )和该窗口的当前形状(参见setShape(Shape) )来实现。
opacity - 设置为窗口的不透明度级别
IllegalArgumentException - 如果不透明度超出范围[0..1]
IllegalComponentStateException - 如果窗口被装饰,并且不透明度小于
1.0f
IllegalComponentStateException - 如果窗口处于全屏模式,并且不透明度小于
1.0f
UnsupportedOperationException -如果
GraphicsDevice.WindowTranslucency#TRANSLUCENT TRANSLUCENT不支持和半透明的不透明度小于
1.0f
getOpacity() , setBackground(Color) , setShape(Shape) , Frame.isUndecorated() , Dialog.isUndecorated() , GraphicsDevice.WindowTranslucency , GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
public Shape getShape()
setShape(shape) ,但保证其表示相同的形状。
null如果没有为窗口指定形状
setShape(Shape) , GraphicsDevice.WindowTranslucency
public void setShape(Shape shape)
设置形状会切断窗口的某些部分。 只有属于给定Shape的部件保持可见和可点击。 如果shape参数为null ,则此方法将恢复默认形状,使窗口在大多数平台上呈矩形。
必须满足以下条件才能设置非空形状:
PERPIXEL_TRANSPARENT半透明度必须由底层系统支持 Frame.setUndecorated(boolean)和Dialog.setUndecorated(boolean) ) GraphicsDevice.setFullScreenWindow(Window) ) 如果请求的形状不是null ,并且不符合上述任何条件,则此窗口的形状将不会更改,并且将抛出UnsupportedOperationException或IllegalComponentStateException 。
单个像素的半透明度也可以通过其颜色的α分量(参见setBackground(Color) )和不透明度值(参见setOpacity(float) )来实现。 详见GraphicsDevice.WindowTranslucency 。
shape - 要设置窗口的形状
IllegalComponentStateException - 如果形状不是
null并且窗口被装饰
IllegalComponentStateException - 如果形状不是
null ,并且窗口处于全屏模式
UnsupportedOperationException - 如果形状不是
null和
PERPIXEL_TRANSPARENT半透明不被支持
getShape() , setBackground(Color) , setOpacity(float) , Frame.isUndecorated() , Dialog.isUndecorated() , GraphicsDevice.WindowTranslucency , GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
public Color getBackground()
请注意,返回颜色的alpha分量表示窗口是否处于非不透明(每像素半透明)模式。
getBackground在类别
Component
setBackground(Color) , isOpaque() , GraphicsDevice.WindowTranslucency
public void setBackground(Color bgColor)
如果窗口系统支持PERPIXEL_TRANSLUCENT半透明度,给定背景颜色的alpha分量可能会影响此窗口的操作模式:它指示此窗口是否必须是不透明的(alpha等于1.0f )或每像素半透明(alpha小于1.0f )。 如果给定的背景颜色是null ,则该窗口被认为是完全不透明的。
必须满足以下条件以启用此窗口的每像素透明度模式:
PERPIXEL_TRANSLUCENT半透明度必须由此窗口所在的图形设备支持 Frame.setUndecorated(boolean)和Dialog.setUndecorated(boolean) ) GraphicsDevice.setFullScreenWindow(Window) ) 如果所请求的背景颜色的alpha分量小于1.0f ,并且不满足上述任何条件,则此窗口的背景颜色不会改变,给定背景颜色的alpha分量将不会影响操作模式这个窗口,和UnsupportedOperationException或IllegalComponentStateException将被抛出。
当窗口是每像素半透明时,绘图子系统遵循每个像素的alpha值。 如果使用等于零的alpha颜色成分绘制像素,则它将变得视觉上透明。 如果像素的alpha等于1.0f,则像素完全不透明。 alpha颜色分量的中间值使像素半透明。 在此模式下,窗口的背景绘制为给定背景颜色的alpha值。 如果此方法的参数的alpha值等于0 ,则完全不绘制背景。
给定像素的半透明度的实际水平也取决于窗口不透明度(参见setOpacity(float) )以及该窗口的当前形状(参见setShape(Shape) )。
请注意,绘制alpha值为0的像素可能会禁用该像素上的鼠标事件处理。 这是依赖于平台的行为。 为了确保鼠标事件不被分派到特定的像素,像素必须从窗口的形状中排除。
由于本机平台要求,启用每像素半透明模式可能会改变该窗口的图形配置。
setBackground在
Component
bgColor - 成为这个窗口的背景颜色的颜色。
IllegalComponentStateException - 如果给定背景颜色的alpha值小于
1.0f并且窗口被装饰
IllegalComponentStateException - 如果给定背景颜色的alpha值小于
1.0f ,并且窗口处于全屏模式
UnsupportedOperationException - 如果给定背景颜色的alpha值小于
1.0f和
PERPIXEL_TRANSLUCENT半透明度不受支持
getBackground() , isOpaque() , setOpacity(float) , setShape(Shape) , Frame.isUndecorated() , Dialog.isUndecorated() , GraphicsDevice.WindowTranslucency , GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency) , GraphicsConfiguration.isTranslucencyCapable()
public boolean isOpaque()
该方法返回false如果窗口的背景色是不null和颜色的Alpha分量小于1.0f 。 该方法返回true其他。
isOpaque在
Component
true如果窗口不透明,
false否则
getBackground() ,
setBackground(Color)
public void paint(Graphics g)
paint在
Container
g - 指定的图形窗口
Component.update(Graphics)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.