模块  java.desktop
软件包  javax.swing

Class JTabbedPane

  • 实现的所有接口
    ImageObserverMenuContainerSerializableAccessibleSwingConstants

    @JavaBean(defaultProperty="UI",
              description="A component which provides a tab folder metaphor for displaying one component from a set of components.")
    public class JTabbedPane
    extends JComponent
    implements Serializable, Accessible, SwingConstants
    一种组件,允许用户通过单击具有给定标题和/或图标的选项卡在一组组件之间切换。 有关使用选项卡式窗格的示例和信息,请参阅“Java教程” How to Use Tabbed Panes部分。

    使用addTabinsertTab方法将选项卡/组件添加到TabbedPane对象。 选项卡由与其添加位置对应的索引表示,其中第一个选项卡的索引等于0,最后一个选项卡的索引等于选项卡计数减1。

    TabbedPane使用SingleSelectionModel来表示选项卡索引集和当前选定的索引。 如果选项卡计数大于0,则始终会有一个选定的索引,默认情况下将初始化为第一个选项卡。 如果选项卡计数为0,则所选索引将为-1。

    标签标题可以由Component呈现。 例如,以下产生类似的结果:

      // In this case the look and feel renders the title for the tab.
     tabbedPane.addTab("Tab", myComponent);
     // In this case the custom component is responsible for rendering the
     // title of the tab.
     tabbedPane.addTab(null, myComponent);
     tabbedPane.setTabComponentAt(0, new JLabel("Tab")); 
    当您需要更复杂的用户交互(需要选项卡上的自定义组件)时,通常会使用后者。 例如,您可以提供动画的自定义组件或具有关闭选项卡的小组件的自定义组件。

    如果为选项卡指定组件,则JTabbedPane将不会呈现您为该选项卡指定的任何文本或图标。

    注意:请勿直接在选项卡组件上使用setVisible以使其可见,请改用setSelectedComponentsetSelectedIndex方法。

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

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    从以下版本开始:
    1.2
    另请参见:
    SingleSelectionModelSerialized Form
    • 字段详细信息

      • WRAP_TAB_LAYOUT

        public static final int WRAP_TAB_LAYOUT
        当所有选项卡不适合单次运行时,用于在多次运行中包装选项卡的选项卡布局策略。
        另请参见:
        常数字段值
      • SCROLL_TAB_LAYOUT

        public static final int SCROLL_TAB_LAYOUT
        选项卡布局策略,用于在所有选项卡不适合单次运行时提供可用选项卡的子集。 如果所有选项卡都不适合单次运行,则外观将提供导航到隐藏选项卡的方法。
        另请参见:
        常数字段值
      • tabPlacement

        protected int tabPlacement
        放置标签的位置。
        另请参见:
        setTabPlacement(int)
      • changeListener

        protected ChangeListener changeListener
        changeListener是我们添加到模型的监听器。
      • changeEvent

        protected transient ChangeEvent changeEvent
        每个TabPane实例只需要一个ChangeEvent因为事件的唯一(只读)状态是源属性。 这里生成的事件源始终是“this”。
    • 方法详细信息

      • createChangeListener

        protected ChangeListener createChangeListener()
        想要以不同方式处理 ChangeEvents的子类可以覆盖它以返回子类 ModelListener或另一个 ChangeListener实现。
        结果
        a ChangeListener
        另请参见:
        fireStateChanged()
      • getChangeListeners

        @BeanProperty(bound=false)
        public ChangeListener[] getChangeListeners()
        返回添加到此 JTabbedPane的所有 ChangeListener的数组, JTabbedPane包含 addChangeListener
        结果
        添加了所有 ChangeListener如果没有添加侦听器,则为空数组
        从以下版本开始:
        1.4
      • fireStateChanged

        protected void fireStateChanged()
        向每个注册的听众发送ChangeEvent ,以此JTabbedPane作为来源。 每次更改所选索引或JTabbedPane的选定选项卡时, JTabbedPane调用此方法。 通常,所选索引和所选选项卡一起更改。 但是,在某些情况下,例如选项卡添加,所选索引会发生更改,同一选项卡仍处于选中状态。 还有其他情况,例如删除所选选项卡,其中索引保持不变,但新选项卡移动到该索引。 所有这些案件都会触发事件。
        另请参见:
        addChangeListener(javax.swing.event.ChangeListener)EventListenerList
      • getTabPlacement

        public int getTabPlacement()
        返回此tabbedpane的选项卡的位置。
        结果
        int指定选项卡的位置
        另请参见:
        setTabPlacement(int)
      • setTabPlacement

        @BeanProperty(preferred=true,
                      visualUpdate=true,
                      enumerationValues={"JTabbedPane.TOP","JTabbedPane.LEFT","JTabbedPane.BOTTOM","JTabbedPane.RIGHT"},
                      description="The tabbedpane\'s tab placement.")
        public void setTabPlacement​(int tabPlacement)
        设置此tabbedpane的选项卡位置。 可能的值是:
        • JTabbedPane.TOP
        • JTabbedPane.BOTTOM
        • JTabbedPane.LEFT
        • JTabbedPane.RIGHT
        如果未设置,则默认值为SwingConstants.TOP
        参数
        tabPlacement - 选项卡相对于内容的位置
        异常
        IllegalArgumentException - 如果制表符放置值不是上述有效值之一
      • getTabLayoutPolicy

        public int getTabLayoutPolicy()
        当所有选项卡不适合单次运行时,返回tabbedpane用于布置选项卡的策略。
        结果
        int指定用于布置选项卡的策略
        从以下版本开始:
        1.4
        另请参见:
        setTabLayoutPolicy(int)
      • setTabLayoutPolicy

        @BeanProperty(preferred=true,
                      visualUpdate=true,
                      enumerationValues={"JTabbedPane.WRAP_TAB_LAYOUT","JTabbedPane.SCROLL_TAB_LAYOUT"},
                      description="The tabbedpane\'s policy for laying out the tabs")
        public void setTabLayoutPolicy​(int tabLayoutPolicy)
        设置当所有选项卡不适合单次运行时tabbedpane将在布置选项卡时使用的策略。 可能的值是:
        • JTabbedPane.WRAP_TAB_LAYOUT
        • JTabbedPane.SCROLL_TAB_LAYOUT
        如果未由UI设置,则默认值为JTabbedPane.WRAP_TAB_LAYOUT

        某些外观可能仅支持可能的布局策略的子集,在这种情况下,可以忽略此属性的值。

        参数
        tabLayoutPolicy - 用于布置选项卡的策略
        异常
        IllegalArgumentException - 如果layoutPolicy值不是上述有效值之一
        从以下版本开始:
        1.4
        另请参见:
        getTabLayoutPolicy()
      • getSelectedIndex

        public int getSelectedIndex()
        返回此tabbedpane的当前选定索引。 如果当前没有选中选项卡,则返回-1。
        结果
        所选标签的索引
        另请参见:
        setSelectedIndex(int)
      • setSelectedIndex

        @BeanProperty(bound=false,
                      preferred=true,
                      description="The tabbedpane\'s selected tab index.")
        public void setSelectedIndex​(int index)
        设置此tabbedpane的选定索引。 索引必须是有效的选项卡索引或-1,这表示不应选择任何选项卡(也可以在选项卡窗格中没有选项卡时使用)。 如果tabbedpane包含一个或多个选项卡时指定了-1值,则结果将是实现定义的。
        参数
        index - 要选择的索引
        异常
        IndexOutOfBoundsException - 如果index超出范围 (index < -1 || index >= tab count)
        另请参见:
        getSelectedIndex()SingleSelectionModel.setSelectedIndex(int)
      • getSelectedComponent

        public Component getSelectedComponent()
        返回此tabbedpane的当前选定组件。 如果当前没有选中选项卡,则返回null
        结果
        与所选选项卡对应的组件
        另请参见:
        setSelectedComponent(java.awt.Component)
      • getTabCount

        @BeanProperty(bound=false)
        public int getTabCount()
        返回此 tabbedpane的选项卡数。
        结果
        一个整数,指定选项卡页面的数量
      • getTabRunCount

        @BeanProperty(bound=false)
        public int getTabRunCount()
        返回当前用于显示选项卡的选项卡运行数。
        结果
        一个整数,行数如果 tabPlacementTOPBOTTOM和列的数目,如果 tabPlacementLEFTRIGHT ,或0,如果是没有UI上设置此 tabbedpane
      • getDisabledIconAt

        public Icon getDisabledIconAt​(int index)
        返回选项卡已禁用图标index 如果在index处不存在选项卡禁用图标, index将调用转发到外观以从相应的启用图标构造适当的禁用图标。 某些外观可能无法呈现禁用的Icon,在这种情况下不会创建它。
        参数
        index - 要查询的项目的索引
        结果
        图标 index
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        另请参见:
        setDisabledIconAt(int, javax.swing.Icon)
      • getToolTipTextAt

        public String getToolTipTextAt​(int index)
        返回选项卡工具提示文本 index
        参数
        index - 要查询的项的索引
        结果
        包含工具提示文本的字符串,位于 index
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        从以下版本开始:
        1.3
        另请参见:
        setToolTipTextAt(int, java.lang.String)
      • getBackgroundAt

        public Color getBackgroundAt​(int index)
        返回选项卡背景颜色 index
        参数
        index - 要查询的项目的索引
        结果
        所述 Color的标签背景中的 index
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        另请参见:
        setBackgroundAt(int, java.awt.Color)
      • getForegroundAt

        public Color getForegroundAt​(int index)
        返回选项卡前景色为 index
        参数
        index - 要查询的项目的索引
        结果
        Color选项卡背景的 index
        异常
        IndexOutOfBoundsException - 如果指数超出范围 (index < 0 || index >= tab count)
        另请参见:
        setForegroundAt(int, java.awt.Color)
      • isEnabledAt

        public boolean isEnabledAt​(int index)
        返回当前是否启用了 index处的选项卡。
        参数
        index - 要查询的项目的索引
        结果
        如果启用了index的选项卡, index true;否则为index 否则是假的
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        另请参见:
        setEnabledAt(int, boolean)
      • getMnemonicAt

        public int getMnemonicAt​(int tabIndex)
        返回用于访问指定选项卡的键盘助记符。 助记符是与外观和无鼠标修改器(通常为Alt)结合使用时将激活指定选项卡的关键。
        参数
        tabIndex - 助记符引用的选项卡的索引
        结果
        表示助记符的关键代码; -1如果没有为选项卡指定助记符
        异常
        IndexOutOfBoundsException - 如果指数超出范围( tabIndex <0 || tabIndex > =制表计数)
        从以下版本开始:
        1.4
        另请参见:
        setDisplayedMnemonicIndexAt(int,int)setMnemonicAt(int,int)
      • getDisplayedMnemonicIndexAt

        public int getDisplayedMnemonicIndexAt​(int tabIndex)
        返回作为索引的字符,外观应该提供装饰以表示助记符。
        参数
        tabIndex - 助记符引用的选项卡的索引
        结果
        表示助记符的索引(如果存在); 否则返回-1
        异常
        IndexOutOfBoundsException - 如果指数超出范围( tabIndex <0 || tabIndex > =标签计数)
        从以下版本开始:
        1.4
        另请参见:
        setDisplayedMnemonicIndexAt(int,int)setMnemonicAt(int,int)
      • getBoundsAt

        public Rectangle getBoundsAt​(int index)
        返回选项卡边界index 如果此索引处的选项卡当前在UI中不可见,则返回null 如果此tabbedpane上没有设置UI,则返回null
        参数
        index - 要查询的索引
        结果
        Rectangle包含选项卡边界 indexnull如果选项卡位于 index当前在UI中不可见,或者如果此处没有设置UI tabbedpane
        异常
        IndexOutOfBoundsException - 如果index超出范围 (index < 0 || index >= tab count)
      • setDisabledIconAt

        @BeanProperty(preferred=true,
                      visualUpdate=true,
                      description="The disabled icon at the specified tab index.")
        public void setDisabledIconAt​(int index,
                                      Icon disabledIcon)
        将禁用的图标设置为indexicon ,可以是null 如果该索引处没有选项卡,则会引发内部异常。
        参数
        index - 应设置禁用图标的选项卡索引
        disabledIcon - 禁用时在选项卡中显示的图标
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        另请参见:
        getDisabledIconAt(int)
      • setToolTipTextAt

        @BeanProperty(preferred=true,
                      description="The tooltip text at the specified tab index.")
        public void setToolTipTextAt​(int index,
                                     String toolTipText)
        将工具提示文本设置为indextoolTipText ,可以是null 如果该索引处没有选项卡,则会引发内部异常。
        参数
        index - 应设置工具提示文本的选项卡索引
        toolTipText - 要为选项卡显示的工具提示文本
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        从以下版本开始:
        1.3
        另请参见:
        getToolTipTextAt(int)
      • setBackgroundAt

        @BeanProperty(preferred=true,
                      visualUpdate=true,
                      description="The background color at the specified tab index.")
        public void setBackgroundAt​(int index,
                                    Color background)
        将背景颜色设置为indexbackground ,可以是null ,在这种情况下,选项卡的背景颜色将默认为tabbedpane的背景颜色。 如果该索引处没有选项卡,则会引发内部异常。

        尊重这个属性取决于外观和感觉,有些人可能会选择忽略它。

        参数
        index - 应设置背景的选项卡索引
        background - 选项卡背景中显示的颜色
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        另请参见:
        getBackgroundAt(int)
      • setForegroundAt

        @BeanProperty(preferred=true,
                      visualUpdate=true,
                      description="The foreground color at the specified tab index.")
        public void setForegroundAt​(int index,
                                    Color foreground)
        将前景色设置为indexforeground ,可以是null ,在这种情况下,选项卡的前景色将默认为此tabbedpane的前景色。 如果该索引处没有选项卡,则会引发内部异常。

        尊重这个属性取决于外观和感觉,有些人可能会选择忽略它。

        参数
        index - 应设置前景的选项卡索引
        foreground - 要显示为选项卡前景的颜色
        异常
        IndexOutOfBoundsException - 如果index超出范围 (index < 0 || index >= tab count)
        另请参见:
        getForegroundAt(int)
      • setEnabledAt

        public void setEnabledAt​(int index,
                                 boolean enabled)
        设置是否启用了index的选项卡。 如果该索引处没有选项卡,则会引发内部异常。
        参数
        index - 应启用/禁用的选项卡索引
        enabled - 是否应启用选项卡
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        另请参见:
        isEnabledAt(int)
      • setComponentAt

        @BeanProperty(visualUpdate=true,
                      description="The component at the specified tab index.")
        public void setComponentAt​(int index,
                                   Component component)
        将组件设置为indexcomponent 如果该索引处没有选项卡,则会引发内部异常。
        参数
        index - 放置此组件的选项卡索引
        component - 选项卡的组件
        异常
        IndexOutOfBoundsException - 如果index超出范围 (index < 0 || index >= tab count)
        另请参见:
        getComponentAt(int)
      • setDisplayedMnemonicIndexAt

        @BeanProperty(visualUpdate=true,
                      description="the index into the String to draw the keyboard character mnemonic at")
        public void setDisplayedMnemonicIndexAt​(int tabIndex,
                                                int mnemonicIndex)
        提供关于文本中哪个字符应该被装饰以表示助记符的外观的提示。 并非所有的外观都能支持这一点。 值-1表示此选项卡没有助记符,或者您不希望为此选项卡显示助记符。

        此值的更新将作为与助记符更改相关的属性(例如助记符本身,文本...)。 如果您不希望默认字符加下划线,则只需要调用此方法。 例如,如果选项卡索引3处的文本为“Apple Price”,并且助记符为“p”,并且您希望将“P”装饰为“Apple P rice”,则必须在调用后调用setDisplayedMnemonicIndex(3, 6) setMnemonicAt(3, KeyEvent.VK_P)

        请注意,程序员有责任确保每个选项卡都具有唯一的助记符或可能发生的不可预测的结果。

        参数
        tabIndex - 助记符引用的选项卡的索引
        mnemonicIndex - 索引到 String下划线
        异常
        IndexOutOfBoundsException - 如果 tabIndex超出范围( tabIndex < 0 || tabIndex >= tab count
        IllegalArgumentException - 如果 mnemonicIndex > =标签标题的长度,则抛出<-1
        从以下版本开始:
        1.4
        另请参见:
        setMnemonicAt(int,int)getDisplayedMnemonicIndexAt(int)
      • setMnemonicAt

        @BeanProperty(visualUpdate=true,
                      description="The keyboard mnenmonic, as a KeyEvent VK constant, for the specified tab")
        public void setMnemonicAt​(int tabIndex,
                                  int mnemonic)
        设置用于访问指定选项卡的键盘助记符。 助记符是与外观和无鼠标修改器(通常为Alt)结合使用时将激活指定选项卡的关键。

        助记符必须对应键盘上的单个键,并且应使用VK_XXX定义的VK_XXXjava.awt.event.KeyEvent之一或通过java.awt.event.KeyEvent.getExtendedKeyCodeForChar获得的扩展键java.awt.event.KeyEvent之一来java.awt.event.KeyEvent.getExtendedKeyCodeForChar 助记符不区分大小写,因此具有相应键代码的键事件将导致按钮被激活,无论是否按下了Shift修饰符。

        这将更新指定选项卡的显示助记符属性。

        参数
        tabIndex - 助记符引用的选项卡的索引
        mnemonic - 表示助记符的关键代码
        异常
        IndexOutOfBoundsException - 如果 tabIndex超出范围( tabIndex < 0 || tabIndex >= tab count
        从以下版本开始:
        1.4
        另请参见:
        getMnemonicAt(int)setDisplayedMnemonicIndexAt(int,int)
      • indexOfTab

        public int indexOfTab​(String title)
        返回给定 title的第一个选项卡索引,如果没有选项卡具有此标题,则返回-1。
        参数
        title - 选项卡的标题
        结果
        第一个与 title匹配的选项卡索引,如果没有选项卡具有此标题, title -1
      • indexOfTab

        public int indexOfTab​(Icon icon)
        返回给定 icon的第一个选项卡索引,如果没有选项卡具有此图标,则返回-1。
        参数
        icon - 选项卡的图标
        结果
        第一个与 icon匹配的选项卡索引,如果没有选项卡有此图标, icon -1
      • indexOfComponent

        public int indexOfComponent​(Component component)
        返回指定组件的选项卡的索引。 如果此组件没有选项卡,则返回-1。
        参数
        component - 选项卡的组件
        结果
        与此组件匹配的第一个选项卡,如果此组件没有选项卡,则为-1
      • indexAtLocation

        public int indexAtLocation​(int x,
                                   int y)
        返回与其边界与指定位置相交的选项卡对应的选项卡索引。 如果没有制表符与该位置相交,则返回-1。
        参数
        x - 相对于此tabbedpane的x位置
        y - 相对于此tabbedpane的y位置
        结果
        与位置相交的选项卡索引,如果没有选项卡与位置相交,则为-1
        从以下版本开始:
        1.4
      • getToolTipText

        public String getToolTipText​(MouseEvent event)
        返回由鼠标事件位置确定的组件的工具提示文本。
        重写:
        getToolTipTextJComponent
        参数
        event - MouseEvent ,它告诉光标在哪里 MouseEvent
        结果
        包含工具提示文本的 String
      • paramString

        protected String paramString()
        返回此JTabbedPane的字符串表示JTabbedPane 此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramString在类 JComponent
        结果
        此JTabbedPane的字符串表示形式。
      • getAccessibleContext

        @BeanProperty(bound=false)
        public AccessibleContext getAccessibleContext()
        获取与此JTabbedPane关联的AccessibleContext。 对于选项卡式窗格,AccessibleContext采用AccessibleJTabbedPane的形式。 如有必要,将创建一个新的AccessibleJTabbedPane实例。
        Specified by:
        getAccessibleContext在界面 Accessible
        重写:
        getAccessibleContext在类 Component
        结果
        一个AccessibleJTabbedPane,用作此JTabbedPane的AccessibleContext
      • setTabComponentAt

        @BeanProperty(preferred=true,
                      visualUpdate=true,
                      description="The tab component at the specified tab index.")
        public void setTabComponentAt​(int index,
                                      Component component)
        设置负责呈现指定选项卡标题的组件。 空值表示JTabbedPane将呈现指定选项卡的标题和/或图标。 非空值表示组件将呈现标题, JTabbedPane将不呈现标题和/或图标。

        注意:组件不能是开发人员已添加到选项卡式窗格的组件。

        参数
        index - 应设置组件的选项卡索引
        component - 用于呈现指定选项卡标题的组件
        异常
        IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index >= tab count)
        IllegalArgumentException - 如果组件已添加到此 JTabbedPane
        从以下版本开始:
        1.6
        另请参见:
        getTabComponentAt(int)
      • indexOfTabComponent

        public int indexOfTabComponent​(Component tabComponent)
        返回指定选项卡组件的选项卡的索引。 如果此选项卡组件没有选项卡,则返回-1。
        参数
        tabComponent - 选项卡的选项卡组件
        结果
        与此选项卡组件匹配的第一个选项卡,如果此选项卡组件没有选项卡,则为-1
        从以下版本开始:
        1.6
        另请参见:
        setTabComponentAt(int, java.awt.Component)getTabComponentAt(int)