- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.Box
-
- All Implemented Interfaces:
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
@JavaBean(defaultProperty="accessibleContext") public class Box extends JComponent implements Accessible
一个使用BoxLayout对象作为其布局管理器的轻量级容器。 Box提供了几种类方法,对于使用BoxLayout(甚至非Box容器)的容器都是有用的。Box
类可以创建影响布局的几种不可见组件:胶水,支柱和刚性区域。 如果您的Box
包含的所有组件都具有固定大小,则可能需要使用胶粘组件(由createGlue
返回)来控制组件的位置。 如果您需要两个组件之间的固定数量的空间,请尝试使用支柱(createHorizontalStrut
或createVerticalStrut
)。 如果您需要一个总是占用相同空间的隐形组件,请通过调用createRigidArea
获取该createRigidArea
。如果您正在实现一个
BoxLayout
您可以在“Java教程”一节中的 How to Use BoxLayout中找到更多信息和示例。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,所有JavaBeans的长期存储支持已被添加到
java.beans
包中。 请参阅XMLEncoder
。- 从以下版本开始:
- 1.2
- 另请参见:
-
BoxLayout
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 protected class
Box.AccessibleBox
这个类实现Box
类的可访问性支持。static class
Box.Filler
参与布局但没有视图的轻量级组件的实现。-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
-
Field Summary
-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
构造方法摘要
构造方法 Constructor 描述 Box(int axis)
创建一个Box
,它沿着指定的轴显示其组件。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 static Component
createGlue()
创建一个不可见的“胶水”组件,可在Box中使用,其可见组件具有最大宽度(对于水平框)或高度(对于垂直框)。static Box
createHorizontalBox()
创建一个Box
显示其组件的Box
。static Component
createHorizontalGlue()
创建水平胶水组件。static Component
createHorizontalStrut(int width)
创建一个看不见的,固定宽度的组件。static Component
createRigidArea(Dimension d)
创建一个总是指定大小的不可见组件。static Box
createVerticalBox()
创建一个Box
显示其组件的Box
。static Component
createVerticalGlue()
创建垂直胶水组件。static Component
createVerticalStrut(int height)
创建一个看不见的,固定高度的组件。AccessibleContext
getAccessibleContext()
获取与此Box关联的AccessibleContext。protected void
paintComponent(Graphics g)
Box
这Box
。void
setLayout(LayoutManager l)
抛出AWTError,因为Box只能使用BoxLayout。-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
-
-
-
-
构造方法详细信息
-
Box
public Box(int axis)
创建一个Box
,它沿着指定的轴显示其组件。- 参数
-
axis
-可以是BoxLayout.X_AXIS
,BoxLayout.Y_AXIS
,BoxLayout.LINE_AXIS
或者BoxLayout.PAGE_AXIS
。 - 异常
-
AWTError
- 如果axis
无效 - 另请参见:
-
createHorizontalBox()
,createVerticalBox()
-
-
方法详细信息
-
createHorizontalBox
public static Box createHorizontalBox()
创建一个Box
显示其组件的Box
。 如果您想要一个Box
组件方向的Box
,您应该使用构造函数创建Box
,并传入BoxLayout.LINE_AXIS
,例如:Box lineBox = new Box(BoxLayout.LINE_AXIS);
- 结果
- 盒子
-
createVerticalBox
public static Box createVerticalBox()
创建一个Box
显示其组件的Box
。 如果您想要一个Box
组件方向的Box
使用构造函数创建Box
,并传入BoxLayout.PAGE_AXIS
,例如:Box lineBox = new Box(BoxLayout.PAGE_AXIS);
- 结果
- 盒子
-
createRigidArea
public static Component createRigidArea(Dimension d)
创建一个总是指定大小的不可见组件。- 参数
-
d
- 不可见组件的尺寸 - 结果
- 组件
- 另请参见:
-
createGlue()
,createHorizontalStrut(int)
,createVerticalStrut(int)
-
createHorizontalStrut
public static Component createHorizontalStrut(int width)
创建一个看不见的,固定宽度的组件。 在一个水平框中,您通常使用此方法强制两个组件之间的一定量的空间。 在垂直框中,您可以使用此方法强制框至少为指定的宽度。 不可见的组件没有高度,除非有空余可用,在这种情况下,它占用可用空间的份额,就像没有最大高度的任何其他组件一样。- 参数
-
width
- 不可见组件的宽度,以像素为单位> = 0 - 结果
- 组件
- 另请参见:
-
createVerticalStrut(int)
,createGlue()
,createRigidArea(java.awt.Dimension)
-
createVerticalStrut
public static Component createVerticalStrut(int height)
创建一个看不见的,固定高度的组件。 在垂直方框中,您通常使用此方法在两个组件之间强制一定量的空间。 在水平框中,您可以使用此方法强制框至少为指定的高度。 不可见的组件没有宽度,除非有空余可用,在这种情况下,它占用可用空间的份额,就像没有最大宽度的任何其他组件一样。- 参数
-
height
- 不可见组件的高度,以像素为单位> = 0 - 结果
- 组件
- 另请参见:
-
createHorizontalStrut(int)
,createGlue()
,createRigidArea(java.awt.Dimension)
-
createGlue
public static Component createGlue()
创建一个不可见的“胶水”组件,可在Box中使用,其可见组件具有最大宽度(对于水平框)或高度(对于垂直框)。 您可以将胶水组件视为一种粘稠物质,可以根据需要进行扩展,以填补其相邻部件之间的空间。例如,假设您有一个包含两个固定大小组件的水平方框。 如果盒子获得额外的空间,固定大小的组件不会变大,那么额外的空间在哪里? 没有胶水,额外的空间就在第二个组件的右边。 如果您在固定大小的组件之间放置胶水,那么额外的空间就会在那里。 如果在第一个固定尺寸的组件之前放置胶水,额外的空间就会到达,固定尺寸的组件被推到盒子的右边缘。 如果在第一个固定尺寸组件之前放置胶水,并且在第二个固定尺寸组件之后,固定尺寸组件在框中居中。
要使用胶水,请调用
Box.createGlue
并将返回的组件添加到容器中。 胶水组件没有最小或优选的尺寸,因此除非有空位可用,否则不占用空间。 如果有多余的空间可用,那么胶水组件就可以获得可用的水平或垂直空间的份额,就像没有最大宽度或高度的任何其他组件一样。- 结果
- 组件
-
createHorizontalGlue
public static Component createHorizontalGlue()
创建水平胶水组件。- 结果
- 组件
-
createVerticalGlue
public static Component createVerticalGlue()
创建垂直胶水组件。- 结果
- 组件
-
setLayout
public void setLayout(LayoutManager l)
抛出AWTError,因为Box只能使用BoxLayout。- 重写:
-
setLayout
在Container
- 参数
-
l
- 要使用的布局管理器 - 另请参见:
-
Container.doLayout()
,Container.getLayout()
,Container.invalidate()
-
paintComponent
protected void paintComponent(Graphics g)
Box
这Box
。 如果这个Box
有一个UI,这个方法调用super的实现,否则如果这个Box
是不透明的,Graphics
是使用背景填充的。- 重写:
-
paintComponent
在JComponent
- 参数
-
g
- 要绘画的Graphics
- 异常
-
NullPointerException
- 如果g
为空 - 从以下版本开始:
- 1.6
- 另请参见:
-
JComponent.paint(java.awt.Graphics)
,ComponentUI
-
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
获取与此Box关联的AccessibleContext。 对于框,AccessibleContext采用AccessibleBox的形式。 如有必要,将创建一个新的AccessibleAWTBox实例。- Specified by:
-
getAccessibleContext
在接口Accessible
- 重写:
-
getAccessibleContext
在Component
- 结果
- 一个AccessibleBox作为该Box的AccessibleContext
-
-