public class Frame extends Window implements MenuContainer
Frame
是一个标题和边框的顶级窗口。
框架的大小包括为边框指定的任何区域。 可以使用getInsets
方法获得边界区域的getInsets
,但是由于这些尺寸与平台相关,因此无法通过调用pack
或show
显示框架,才能获得有效的插入值。 由于边框区域被包含在框架的整体尺寸中,所以边框有效地掩盖了框架的一部分,限制了可用于渲染和/或显示子组件的区域到左上角位置为(insets.left, insets.top)
,以及具有width - (insets.left + insets.right)
的height - (insets.top + insets.bottom)
。
帧的默认布局为BorderLayout
。
一个框架可能有其本机装饰(即Frame
和Titlebar
)关闭与setUndecorated
。 这只能在框架不是displayable
时完成 。
在多屏幕环境中,你可以创建一个Frame
通过构建不同的屏幕设备上Frame
与Frame(GraphicsConfiguration)
或Frame(String title, GraphicsConfiguration)
。 GraphicsConfiguration
对象是目标屏幕设备的GraphicsConfiguration
对象之一。
在桌面区域可跨越多个物理屏幕设备的虚拟设备多屏幕环境中,所有配置的边界都相对于虚拟坐标系。 虚拟坐标系的原点位于主物理屏幕的左上角。 根据虚拟设备中主屏幕的位置,可以使用负坐标,如下图所示。
在这样的环境中,当调用setLocation
时,必须将虚拟坐标传递给此方法。 同样,调用getLocationOnScreen
上Frame
返回虚拟设备坐标。 调用getBounds
一个的方法GraphicsConfiguration
找到它的起源在虚拟坐标系统相同。
下面的代码设置的位置Frame
在(10,10)相对于所述相应的物理屏幕的原点GraphicsConfiguration
。 如果不考虑GraphicsConfiguration
的范围, Frame
位置将相对于虚拟坐标系设置为(10,10),并将显示在主物理屏幕上,这可能与物理屏幕不同指定为GraphicsConfiguration
。
Frame f = new Frame(GraphicsConfiguration gc);
Rectangle bounds = gc.getBounds();
f.setLocation(10 + bounds.x, 10 + bounds.y);
框架能够生成以下类型的WindowEvent
s:
WINDOW_OPENED
WINDOW_CLOSING
: WINDOW_CLOSED
WINDOW_ICONIFIED
WINDOW_DEICONIFIED
WINDOW_ACTIVATED
WINDOW_DEACTIVATED
WINDOW_GAINED_FOCUS
WINDOW_LOST_FOCUS
WINDOW_STATE_CHANGED
WindowEvent
, Window.addWindowListener(java.awt.event.WindowListener)
, Serialized Form
Modifier and Type | Class and Description |
---|---|
protected class |
Frame.AccessibleAWTFrame
该类实现对
Frame 类的辅助功能支持。
|
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static int |
CROSSHAIR_CURSOR
已弃用
替换为
Cursor.CROSSHAIR_CURSOR 。
|
static int |
DEFAULT_CURSOR
已弃用
换成
Cursor.DEFAULT_CURSOR 。
|
static int |
E_RESIZE_CURSOR
已弃用
换成
Cursor.E_RESIZE_CURSOR 。
|
static int |
HAND_CURSOR
已弃用
替换为
Cursor.HAND_CURSOR 。
|
static int |
ICONIFIED
该状态位指示帧被图标化。
|
static int |
MAXIMIZED_BOTH
该状态位掩码表示帧完全最大化(即水平和垂直)。
|
static int |
MAXIMIZED_HORIZ
该状态位指示帧在水平方向上最大化。
|
static int |
MAXIMIZED_VERT
该状态位指示帧在垂直方向上最大化。
|
static int |
MOVE_CURSOR
已弃用
替换为
Cursor.MOVE_CURSOR 。
|
static int |
N_RESIZE_CURSOR
已弃用
换成
Cursor.N_RESIZE_CURSOR 。
|
static int |
NE_RESIZE_CURSOR
已弃用
换成
Cursor.NE_RESIZE_CURSOR 。
|
static int |
NORMAL
框架处于“正常”状态。
|
static int |
NW_RESIZE_CURSOR
已弃用
换成
Cursor.NW_RESIZE_CURSOR 。
|
static int |
S_RESIZE_CURSOR
已弃用
替换为
Cursor.S_RESIZE_CURSOR 。
|
static int |
SE_RESIZE_CURSOR
已弃用
替换为
Cursor.SE_RESIZE_CURSOR 。
|
static int |
SW_RESIZE_CURSOR
已弃用
替换为
Cursor.SW_RESIZE_CURSOR 。
|
static int |
TEXT_CURSOR
已弃用
换成
Cursor.TEXT_CURSOR 。
|
static int |
W_RESIZE_CURSOR
已弃用
换成
Cursor.W_RESIZE_CURSOR 。
|
static int |
WAIT_CURSOR
已弃用
由
Cursor.WAIT_CURSOR 取代。
|
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
Frame()
构造的新实例
Frame 初始时不可见。
|
Frame(GraphicsConfiguration gc)
构造一个新的,最初看不见的
Frame 与指定的
GraphicsConfiguration 。
|
Frame(String title)
构造一个新的,最初不可见的
Frame 对象,其中包含指定的标题。
|
Frame(String title, GraphicsConfiguration gc)
构造一个新的,最初不可见的
Frame 对象,具有指定的标题和一个
GraphicsConfiguration 。
|
Modifier and Type | Method and Description |
---|---|
void |
addNotify()
通过将此框架连接到本机屏幕资源来使此框架可以显示。
|
AccessibleContext |
getAccessibleContext()
获取与此Frame相关联的AccessibleContext。
|
int |
getCursorType()
已弃用
从JDK 1.1版开始,由
Component.getCursor() 。
|
int |
getExtendedState()
获取此框架的状态。
|
static Frame[] |
getFrames()
返回
Frame 创建的所有
Frame 的数组。
|
Image |
getIconImage()
返回要显示的图像作为此框架的图标。
|
Rectangle |
getMaximizedBounds()
获得此框架的最大化边界。
|
MenuBar |
getMenuBar()
获取此框架的菜单栏。
|
int |
getState()
获取此框架的状态(已过时)。
|
String |
getTitle()
获取框架的标题。
|
boolean |
isResizable()
指示该框架是否可由用户调整大小。
|
boolean |
isUndecorated()
指示此框架是否未装饰。
|
protected String |
paramString()
返回一个表示此
Frame 状态的字符串。
|
void |
remove(MenuComponent m)
从此框架中删除指定的菜单栏。
|
void |
removeNotify()
通过删除其与其本机屏幕资源的连接,使此框架不可显示。
|
void |
setBackground(Color bgColor)
设置此窗口的背景颜色。
|
void |
setCursor(int cursorType)
已弃用
从JDK 1.1版开始,由
Component.setCursor(Cursor) 。
|
void |
setExtendedState(int state)
设置此帧的状态。
|
void |
setIconImage(Image image)
将要显示的图像设置为此窗口的图标。
|
void |
setMaximizedBounds(Rectangle bounds)
设置此框架的最大化边界。
|
void |
setMenuBar(MenuBar mb)
将此框架的菜单栏设置为指定的菜单栏。
|
void |
setOpacity(float opacity)
设置窗口的不透明度。
|
void |
setResizable(boolean resizable)
设置该框架是否可以由用户调整大小。
|
void |
setShape(Shape shape)
设置窗口的形状。
|
void |
setState(int state)
设置此框架的状态(已过时)。
|
void |
setTitle(String title)
将此框架的标题设置为指定的字符串。
|
void |
setUndecorated(boolean undecorated)
禁用或启用此框架的装饰。
|
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, 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, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusDownCycle, update, validate, validateTree
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, 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, 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, transferFocusUpCycle
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFont, postEvent
@Deprecated public static final int DEFAULT_CURSOR
Cursor.DEFAULT_CURSOR
。
@Deprecated public static final int CROSSHAIR_CURSOR
Cursor.CROSSHAIR_CURSOR
。
@Deprecated public static final int TEXT_CURSOR
Cursor.TEXT_CURSOR
。
@Deprecated public static final int WAIT_CURSOR
Cursor.WAIT_CURSOR
。
@Deprecated public static final int SW_RESIZE_CURSOR
Cursor.SW_RESIZE_CURSOR
。
@Deprecated public static final int SE_RESIZE_CURSOR
Cursor.SE_RESIZE_CURSOR
。
@Deprecated public static final int NW_RESIZE_CURSOR
Cursor.NW_RESIZE_CURSOR
。
@Deprecated public static final int NE_RESIZE_CURSOR
Cursor.NE_RESIZE_CURSOR
。
@Deprecated public static final int N_RESIZE_CURSOR
Cursor.N_RESIZE_CURSOR
。
@Deprecated public static final int S_RESIZE_CURSOR
Cursor.S_RESIZE_CURSOR
。
@Deprecated public static final int W_RESIZE_CURSOR
Cursor.W_RESIZE_CURSOR
。
@Deprecated public static final int E_RESIZE_CURSOR
Cursor.E_RESIZE_CURSOR
。
@Deprecated public static final int HAND_CURSOR
Cursor.HAND_CURSOR
。
@Deprecated public static final int MOVE_CURSOR
Cursor.MOVE_CURSOR
。
public static final int NORMAL
public static final int ICONIFIED
public static final int MAXIMIZED_HORIZ
setExtendedState(int)
,
getExtendedState()
,
Constant Field Values
public static final int MAXIMIZED_VERT
setExtendedState(int)
,
getExtendedState()
,
Constant Field Values
public static final int MAXIMIZED_BOTH
MAXIMIZED_VERT | MAXIMIZED_HORIZ
。
请注意,正确的框架测试是完全最大化的
(state & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH
要测试的是帧的最大化在某些方向使用
(state & Frame.MAXIMIZED_BOTH) != 0
setExtendedState(int)
,
getExtendedState()
,
Constant Field Values
public Frame() throws HeadlessException
Frame
初始时不可见。
Frame
的标题为空。
HeadlessException
- 当时
GraphicsEnvironment.isHeadless()
返回
true
GraphicsEnvironment.isHeadless()
,
Component.setSize(int, int)
,
Component.setVisible(boolean)
public Frame(GraphicsConfiguration gc)
Frame
与指定的
GraphicsConfiguration
。
gc
- 目标屏幕设备的GraphicsConfiguration
。
如果gc
为null
,系统默认为GraphicsConfiguration
。
IllegalArgumentException
- 如果
gc
不是从屏幕设备。
HeadlessException
- 当时
GraphicsEnvironment.isHeadless()
返回
true
GraphicsEnvironment.isHeadless()
public Frame(String title) throws HeadlessException
Frame
对象与指定的标题。
title
- 要显示在框架边框中的标题。
一个null
值被视为空字符串“”。
HeadlessException
- 当时
GraphicsEnvironment.isHeadless()
返回
true
GraphicsEnvironment.isHeadless()
,
Component.setSize(int, int)
,
Component.setVisible(boolean)
,
GraphicsConfiguration.getBounds()
public Frame(String title, GraphicsConfiguration gc)
Frame
对象,具有指定的标题和
GraphicsConfiguration
。
title
- 要显示在框架边框中的标题。
一个null
值被视为空字符串“”。
gc
- 目标屏幕设备的GraphicsConfiguration
。
如果gc
是null
,则假定系统默认值为GraphicsConfiguration
。
IllegalArgumentException
- 如果
gc
不是来自屏幕设备。
HeadlessException
- 当
GraphicsEnvironment.isHeadless()
返回
true
GraphicsEnvironment.isHeadless()
,
Component.setSize(int, int)
,
Component.setVisible(boolean)
,
GraphicsConfiguration.getBounds()
public void addNotify()
addNotify
在类别
Window
Component.isDisplayable()
,
removeNotify()
public String getTitle()
setTitle(String)
public void setTitle(String title)
title
- 要在框架边框中显示的标题。
一个null
值被视为空字符串“”。
getTitle()
public Image getIconImage()
此方法已过时,仅用于向后兼容。 改用Window.getIconImages()
。
如果将多个图像的列表指定为Window的图标,则此方法将返回列表的第一个项目。
null
如果此框架没有图标图像。
setIconImage(Image)
,
Window.getIconImages()
,
Window.setIconImages(java.util.List<? extends java.awt.Image>)
public void setIconImage(Image image)
可以使用此方法代替setIconImages()
将单个图像指定为窗口的图标。
以下声明:
setIconImage(image);
相当于:
ArrayList<Image> imageList = new ArrayList<Image>();
imageList.add(image);
setIconImages(imageList);
注意:根据上下文(例如窗口装饰,窗口列表,任务栏等),本机窗口系统可以使用不同尺寸的不同图像来表示窗口。 他们也可以仅使用单个图像进行所有上下文或根本没有图像。
setIconImage
在类别
Window
image
- 要显示的图标图像。
Window.setIconImages(java.util.List<? extends java.awt.Image>)
,
Window.getIconImages()
public MenuBar getMenuBar()
null
如果此框架没有菜单栏。
setMenuBar(MenuBar)
public void setMenuBar(MenuBar mb)
mb
- 设置菜单栏。
如果此参数为null
则此框架上的任何现有菜单栏都将被删除。
getMenuBar()
public boolean isResizable()
true
如果用户可以调整此框架大小;
false
否则。
setResizable(boolean)
public void setResizable(boolean resizable)
resizable
- true
如果此框架可调整大小;
false
否则。
isResizable()
public void setState(int state)
在旧版本的JDK中,帧状态只能是NORMAL或ICONIFIED。 由于JDK 1.4支持的帧状态集合被扩展,并且帧状态被表示为按位掩码。
为了与早期开发的应用程序兼容,此方法仅接受Frame.NORMAL
和Frame.ICONIFIED
。 帧的标志状态只有改变,帧状态的其他方面不受此方法的影响。 如果传递给该方法的状态既不是Frame.NORMAL
也不是Frame.NORMAL
, Frame.ICONIFIED
该方法完全不执行任何操作。
请注意,如果给定平台不支持该状态,则不会更改getState()
方法的状态和返回值。 应用程序可以通过Toolkit.isFrameStateSupported(int)
方法确定是否支持特定状态。
如果框架当前在屏幕上可见 ( Window.isShowing()
方法返回true
),开发人员应检查通过WindowEvent
收到的WindowEvent的88381256089109方法的返回值,以确定状态实际上已更改。
如果框架在屏幕上不可见 ,则可能会生成事件,也可能不会生成事件。 在这种情况下,开发人员可以假定在该方法返回后状态立即改变。 之后,当调用setVisible(true)
方法时,框架将尝试应用此状态。 在这种情况下也不能保证收到任何WindowEvent.WINDOW_STATE_CHANGED
事件。
state
-
Frame.NORMAL
或
Frame.ICONIFIED
。
setExtendedState(int)
,
Window.addWindowStateListener(java.awt.event.WindowStateListener)
public void setExtendedState(int state)
NORMAL
ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH
MAXIMIZED_HORIZ
和MAXIMIZED_VERT
。 请注意,如果给定平台不支持该状态,则不会更改getExtendedState()
方法的状态和返回值。 应用程序可以通过Toolkit.isFrameStateSupported(int)
方法确定是否支持特定状态。
如果框架当前在屏幕上可见 ( Window.isShowing()
方法返回true
),开发人员应检查通过WindowEvent
接收的WindowEvent的WindowEvent.getNewState()
方法的返回值,以确定状态实际已更改。
如果框架在屏幕上不可见 ,则可能会生成事件,也可能不会生成事件。 在这种情况下,开发人员可以假定在该方法返回后状态立即改变。 之后,当调用setVisible(true)
方法时,框架将尝试应用此状态。 在这种情况下也不能保证收到任何WindowEvent.WINDOW_STATE_CHANGED
事件。
state
- 帧状态常数的按位掩码
Window.addWindowStateListener(java.awt.event.WindowStateListener)
public int getState()
在旧版本的JDK中,帧状态只能是NORMAL或ICONIFIED。 由于JDK 1.4支持的帧状态集合被扩展,并且帧状态被表示为按位掩码。
为了与旧程序兼容,该方法仍然返回Frame.NORMAL
和Frame.ICONIFIED
但它只报告帧的标志状态,帧状态的其他方面不会通过此方法报告。
Frame.NORMAL
或
Frame.ICONIFIED
。
setState(int)
,
getExtendedState()
public int getExtendedState()
NORMAL
ICONIFIED
MAXIMIZED_HORIZ
MAXIMIZED_VERT
MAXIMIZED_BOTH
MAXIMIZED_HORIZ
和MAXIMIZED_VERT
。 setExtendedState(int)
public void setMaximizedBounds(Rectangle bounds)
当帧处于最大化状态时,系统提供一些默认边界。 该方法允许覆盖那些系统提供的值中的一些或全部。
如果bounds
为null
,则接受系统提供的边界。 如果非null
可以通过将要从系统接受的字段设置为Integer.MAX_VALUE
来接受其他系统提供的值。
注意,给定的最大化边界用作本机系统的提示,因为底层平台可能不支持设置最大化窗口的位置和/或大小。 如果是这种情况,提供的值不会影响最大化状态下的帧的外观。
bounds
- 最大化状态的界限
getMaximizedBounds()
public Rectangle getMaximizedBounds()
Integer.MAX_VALUE
以指示必须使用该字段的系统提供的值。
null
setMaximizedBounds(Rectangle)
public void setUndecorated(boolean undecorated)
该方法只能在框架不可显示时被调用。 要使这个框架装饰,它必须是不透明的,并且具有默认形状,否则IllegalComponentStateException
将被抛出。 请参阅Window.setShape(java.awt.Shape)
, Window.setOpacity(float)
和Window.setBackground(java.awt.Color)
详细内容
undecorated
- true
如果不启用框架装饰;
false
如果要启用框架装饰
IllegalComponentStateException
- 如果框架是可显示的
IllegalComponentStateException
- 如果
undecorated
是
false
,而这个框架没有默认的形状
IllegalComponentStateException
- 如果
undecorated
是
false
,并且此帧不透明度小于
1.0f
IllegalComponentStateException
- 如果
undecorated
是
false
,并且此框架背景颜色的alpha值小于
1.0f
isUndecorated()
,
Component.isDisplayable()
,
Window.getShape()
,
Window.getOpacity()
,
Window.getBackground()
,
JFrame.setDefaultLookAndFeelDecorated(boolean)
public boolean isUndecorated()
true
如果框架未装饰;
false
否则。
setUndecorated(boolean)
public void setOpacity(float opacity)
不透明度值在[0..1]的范围内。 请注意,设置不透明度级别为0可能会禁用此窗口上的鼠标事件处理。 这是依赖于平台的行为。
为了设置不透明度值小于1.0f,必须满足以下1.0f
:
TRANSLUCENT
半透明度必须由底层系统支持 setUndecorated(boolean)
和Dialog.setUndecorated(boolean)
) GraphicsDevice.setFullScreenWindow(Window)
) 如果请求的不透明度值小于1.0f
,并且不符合上述任何条件,窗口不透明度将不会更改,并且将抛出IllegalComponentStateException
。
单个像素的半透明度也可以通过其颜色的α分量(参见Window.setBackground(Color)
)和该窗口的当前形状(参见Window.setShape(Shape)
)来实现。
public void setShape(Shape shape)
设置形状会切断窗口的某些部分。 只有属于给定Shape
的部分保持可见和可点击。 如果shape参数为null
,则此方法将恢复默认形状,使窗口在大多数平台上呈矩形。
必须满足以下条件才能设置非空形状:
PERPIXEL_TRANSPARENT
半透明度必须由底层系统支持 setUndecorated(boolean)
和Dialog.setUndecorated(boolean)
) GraphicsDevice.setFullScreenWindow(Window)
) 如果请求的形状不是null
,并且不符合上述任何条件,此窗口的形状将不会改变,并且UnsupportedOperationException
或IllegalComponentStateException
将被抛出。
单个像素的半透明度水平也可以通过其颜色的α分量(参见Window.setBackground(Color)
)和不透明度值(参见Window.setOpacity(float)
)来实现。 详见GraphicsDevice.WindowTranslucency
。
public void setBackground(Color bgColor)
如果窗口系统支持PERPIXEL_TRANSLUCENT
半透明度,给定背景颜色的alpha分量可能会影响此窗口的操作模式:它指示此窗口是否为不透明(alpha等于1.0f
)或每像素半透明(alpha小于1.0f
)。 如果给定的背景颜色是null
,则该窗口被认为是完全不透明的。
必须满足以下条件以启用此窗口的每像素透明度模式:
PERPIXEL_TRANSLUCENT
半透明度必须由此窗口所在的图形设备支持 setUndecorated(boolean)
和Dialog.setUndecorated(boolean)
) GraphicsDevice.setFullScreenWindow(Window)
) 如果请求的背景颜色的alpha分量小于1.0f
,并且不满足上述任何条件,则此窗口的背景颜色不会改变,给定背景颜色的alpha分量不会影响这个窗口,和UnsupportedOperationException
或IllegalComponentStateException
将被抛出。
当窗口是每像素半透明时,绘图子系统遵循每个像素的alpha值。 如果使用等于零的alpha颜色成分绘制像素,则它将变得视觉上透明。 如果像素的alpha等于1.0f,则像素完全不透明。 alpha颜色分量的中间值使像素半透明。 在此模式下,窗口的背景绘制为给定背景颜色的alpha值。 如果此方法的参数的alpha值等于0
,则完全不绘制背景。
给定像素的半透明度的实际水平也取决于窗口不透明度(参见Window.setOpacity(float)
)以及该窗口的当前形状(参见Window.setShape(Shape)
)。
请注意,绘制alpha值为0
的像素可能会禁用该像素上的鼠标事件处理。 这是依赖于平台的行为。 为了确保鼠标事件不被分派到特定的像素,像素必须从窗口的形状中排除。
由于本机平台要求,启用每像素半透明模式可能会改变该窗口的图形配置。
setBackground
在类别
Window
bgColor
- 成为这个窗口的背景颜色的颜色。
Window.getBackground()
, Window.isOpaque()
, Window.setOpacity(float)
, Window.setShape(Shape)
, isUndecorated()
, Dialog.isUndecorated()
, GraphicsDevice.WindowTranslucency
, GraphicsDevice.isWindowTranslucencySupported(GraphicsDevice.WindowTranslucency)
, GraphicsConfiguration.isTranslucencyCapable()
public void remove(MenuComponent m)
remove
在界面
MenuContainer
remove
在
Component
m
- 要删除的菜单组件。
如果m
是null
,那么不采取任何行动
Component.add(PopupMenu)
public void removeNotify()
removeNotify
在
Window
Component.isDisplayable()
,
addNotify()
protected String paramString()
Frame
的状态的字符串。
该方法仅用于调试目的,并且返回的字符串的内容和格式可能因实现而异。
返回的字符串可能为空,但可能不是null
。
paramString
在类别
Container
@Deprecated public void setCursor(int cursorType)
Component.setCursor(Cursor)
替换。
@Deprecated public int getCursorType()
Component.getCursor()
。
public static Frame[] getFrames()
Frame
创建的所有Frame
的数组。
如果从小程序调用,该数组仅包含该applet可Frame
的Frame。
警告:此方法可能会返回系统创建的帧,例如Swing使用的共享隐藏帧。 应用程序不应假定这些帧的存在,也不应该应用大约假定这些帧,如组件的位置,任何LayoutManager
或序列化。
注意 :要获取所有无主窗口的列表,包括所有权Dialog
(版本1.6中介绍),请使用Window.getOwnerlessWindows
。
Window.getWindows()
,
Window.getOwnerlessWindows()
public AccessibleContext getAccessibleContext()
getAccessibleContext
在界面
Accessible
getAccessibleContext
在类别
Window
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.