Class JideTabbedPane

All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, SwingConstants

public class JideTabbedPane extends JTabbedPane
JideTabbedPane is an enhanced version of JTabbedPane. Different from JTabbedPane, it
  • has an option to hide tab area if there is only one component in the tabbed pane.
  • has an option to resize tab width so that all tabs can be fitted in one row.
  • has an option to show a close button along with scroll left and scroll right buttons in tab area.
Except methods to set additional options specified above, the usage of JideTabbedPane is the same as JTabbedPane.
See Also:
  • Field Details

    • SHRINK_TAB_PROPERTY

      public static final String SHRINK_TAB_PROPERTY
      Bound property name for shrink tabs.
      See Also:
    • HIDE_IF_ONE_TAB_PROPERTY

      public static final String HIDE_IF_ONE_TAB_PROPERTY
      Bound property name for hide tab area if there is only one tab.
      See Also:
    • SHOW_TAB_BUTTONS_PROPERTY

      public static final String SHOW_TAB_BUTTONS_PROPERTY
      Bound property name for show tab button.
      See Also:
    • BOX_STYLE_PROPERTY

      public static final String BOX_STYLE_PROPERTY
      Bound property name for box style
      See Also:
    • SHOW_ICONS_PROPERTY

      public static final String SHOW_ICONS_PROPERTY
      Bound property name for show icons on tab
      See Also:
    • USE_DEFAULT_SHOW_ICONS_PROPERTY

      public static final String USE_DEFAULT_SHOW_ICONS_PROPERTY
      Bound property name for using default show icons on tab value from UIDefaults
      See Also:
    • SHOW_CLOSE_BUTTON_ON_TAB_PROPERTY

      public static final String SHOW_CLOSE_BUTTON_ON_TAB_PROPERTY
      Bound property name for if showing close button on tab
      See Also:
    • SHOW_CLOSE_BUTTON_PROPERTY

      public static final String SHOW_CLOSE_BUTTON_PROPERTY
      Bound property name for if showing close button
      See Also:
    • SHOW_TAB_AREA_PROPERTY

      public static final String SHOW_TAB_AREA_PROPERTY
      Bound property name for if the tab area is visible.
      See Also:
    • SHOW_TAB_CONTENT_PROPERTY

      public static final String SHOW_TAB_CONTENT_PROPERTY
      Bound property name for if the tab area is visible.
      See Also:
    • TAB_CLOSABLE_PROPERTY

      public static final String TAB_CLOSABLE_PROPERTY
      Bound property name for tab closable.
      See Also:
    • USE_DEFAULT_SHOW_CLOSE_BUTTON_ON_TAB_PROPERTY

      public static final String USE_DEFAULT_SHOW_CLOSE_BUTTON_ON_TAB_PROPERTY
      Bound property name for using default show close button on tab value from UIDefaults
      See Also:
    • BOLDACTIVETAB_PROPERTY

      public static final String BOLDACTIVETAB_PROPERTY
      Bound property name for if the active tab title is in bold
      See Also:
    • GRIPPER_PROPERTY

      public static final String GRIPPER_PROPERTY
      Bound property name for gripper.
      See Also:
    • PROPERTY_TAB_SHAPE

      public static final String PROPERTY_TAB_SHAPE
      See Also:
    • PROPERTY_COLOR_THEME

      public static final String PROPERTY_COLOR_THEME
      See Also:
    • PROPERTY_TAB_RESIZE_MODE

      public static final String PROPERTY_TAB_RESIZE_MODE
      See Also:
    • PROPERTY_TAB_LEADING_COMPONENT

      public static final String PROPERTY_TAB_LEADING_COMPONENT
      See Also:
    • PROPERTY_TAB_TRAILING_COMPONENT

      public static final String PROPERTY_TAB_TRAILING_COMPONENT
      See Also:
    • PROPERTY_TAB_COLOR_PROVIDER

      public static final String PROPERTY_TAB_COLOR_PROVIDER
      See Also:
    • PROPERTY_CONTENT_BORDER_INSETS

      public static final String PROPERTY_CONTENT_BORDER_INSETS
      See Also:
    • PROPERTY_TAB_AREA_INSETS

      public static final String PROPERTY_TAB_AREA_INSETS
      See Also:
    • PROPERTY_TAB_INSETS

      public static final String PROPERTY_TAB_INSETS
      See Also:
    • PROPERTY_DRAG_OVER_DISABLED

      public static final String PROPERTY_DRAG_OVER_DISABLED
      See Also:
    • SCROLL_TAB_ON_WHEEL_PROPERTY

      public static final String SCROLL_TAB_ON_WHEEL_PROPERTY
      See Also:
    • PROPERTY_SELECTED_INDEX

      public static final String PROPERTY_SELECTED_INDEX
      See Also:
    • PROPERTY_SHOW_CLOSE_BUTTON_ON_MOUSE_OVER

      public static final String PROPERTY_SHOW_CLOSE_BUTTON_ON_MOUSE_OVER
      See Also:
    • BUTTON_CLOSE

      public static final int BUTTON_CLOSE
      See Also:
    • BUTTON_EAST

      public static final int BUTTON_EAST
      See Also:
    • BUTTON_WEST

      public static final int BUTTON_WEST
      See Also:
    • BUTTON_NORTH

      public static final int BUTTON_NORTH
      See Also:
    • BUTTON_SOUTH

      public static final int BUTTON_SOUTH
      See Also:
    • BUTTON_LIST

      public static final int BUTTON_LIST
      See Also:
    • RESIZE_MODE_DEFAULT

      public static final int RESIZE_MODE_DEFAULT
      A tab resize mode. The default resize mode means it will use the resize mode of getDefaultTabResizeMode() which is defined in UIDefault "JideTabbedPane.defaultResizeMode". You can change this in UIDefault. It will affect the resize mode of all JideTabbedPanes.
      See Also:
    • RESIZE_MODE_NONE

      public static final int RESIZE_MODE_NONE
      A tab resize mode. The none resize mode means the tab will not resize when tabbed pane width changes.
      See Also:
    • RESIZE_MODE_FIT

      public static final int RESIZE_MODE_FIT
      A tab resize mode. The fit resize mode means the tabs will shrink if the tabbed pane width shrinks so there is no way to display the full contents of the tabs.
      See Also:
    • RESIZE_MODE_FIXED

      public static final int RESIZE_MODE_FIXED
      A tab resize mode. All tabs will be at a fixed width. The fixed width is defined as UIDefault "JideTabbedPane.fixedStyleRectSize" which is an integer.
      See Also:
    • RESIZE_MODE_COMPRESSED

      public static final int RESIZE_MODE_COMPRESSED
      A tab resize mode. In this mode, the select tab will have full tab width. Non-selected tab will only display the icon. The actual width of non-selected tab is determined by UIDefault "JideTabbedPane.compressedStyleNoIconRectSize" which is an integer.
      See Also:
    • COLOR_THEME_DEFAULT

      public static final int COLOR_THEME_DEFAULT
      color style
      See Also:
    • COLOR_THEME_WIN2K

      public static final int COLOR_THEME_WIN2K
      See Also:
    • COLOR_THEME_OFFICE2003

      public static final int COLOR_THEME_OFFICE2003
      See Also:
    • COLOR_THEME_VSNET

      public static final int COLOR_THEME_VSNET
      See Also:
    • COLOR_THEME_WINXP

      public static final int COLOR_THEME_WINXP
      See Also:
    • SHAPE_DEFAULT

      public static final int SHAPE_DEFAULT
      See Also:
    • SHAPE_WINDOWS

      public static final int SHAPE_WINDOWS
      See Also:
    • SHAPE_VSNET

      public static final int SHAPE_VSNET
      See Also:
    • SHAPE_BOX

      public static final int SHAPE_BOX
      See Also:
    • SHAPE_OFFICE2003

      public static final int SHAPE_OFFICE2003
      See Also:
    • SHAPE_FLAT

      public static final int SHAPE_FLAT
      See Also:
    • SHAPE_ECLIPSE

      public static final int SHAPE_ECLIPSE
      See Also:
    • SHAPE_ECLIPSE3X

      public static final int SHAPE_ECLIPSE3X
      See Also:
    • SHAPE_EXCEL

      public static final int SHAPE_EXCEL
      See Also:
    • SHAPE_ROUNDED_VSNET

      public static final int SHAPE_ROUNDED_VSNET
      See Also:
    • SHAPE_ROUNDED_FLAT

      public static final int SHAPE_ROUNDED_FLAT
      See Also:
    • SHAPE_WINDOWS_SELECTED

      public static final int SHAPE_WINDOWS_SELECTED
      See Also:
    • _tabEditingAllowed

      protected transient boolean _tabEditingAllowed
    • _tabEditValidator

      protected transient TabEditingValidator _tabEditValidator
    • ONENOTE_COLOR_PROVIDER

      public static JideTabbedPane.ColorProvider ONENOTE_COLOR_PROVIDER
    • _focusChangeListener

      protected PropertyChangeListener _focusChangeListener
  • Constructor Details

  • Method Details

    • getUI

      public TabbedPaneUI getUI()
      Returns the UI object which implements the L&F for this component.
      Overrides:
      getUI in class JTabbedPane
      Returns:
      a TabbedPaneUI object
      See Also:
    • setUI

      public void setUI(TabbedPaneUI ui)
      Sets the UI object which implements the L&F for this component.
      Overrides:
      setUI in class JTabbedPane
      Parameters:
      ui - the new UI object
      See Also:
    • updateUI

      public void updateUI()
      Resets the UI property to a value from the current look and feel.
      Overrides:
      updateUI in class JTabbedPane
      See Also:
    • getUIClassID

      public String getUIClassID()
      Returns the name of the UI class that implements the L&F for this component.
      Overrides:
      getUIClassID in class JTabbedPane
      Returns:
      the string "TabbedPaneUI"
      See Also:
    • isHideOneTab

      public boolean isHideOneTab()
      Checks if tab area will be hidden if there is only one tab.
      If the showTabButtons option is true, isHideOneTab will always return false so that there is a place to place those tab buttons.
      Returns:
      true if tab areas will be hidden if there is only one tab; false otherwise.
    • setHideOneTab

      public void setHideOneTab(boolean hideOne)
      Sets the value if tab area will be hidden if there is only one tab. PropertyChangeEvent of HIDE_IF_ONE_TAB_PROPERTY will be fired.
      If the showTabButtons option is true, no matter what option you pass to setHideOneTab, isHideOneTab will always return false.
      Parameters:
      hideOne - true to hide tab areas if there is only one tab; false otherwise.
    • isTabShown

      public boolean isTabShown()
      Checks if tab area is shown.
      Returns:
      true if tab area is visible; false otherwise.
    • isShowTabButtons

      public boolean isShowTabButtons()
      Checks if tab buttons are always visible. Tab buttons are scroll left button, scroll right button and close button which appear to the right of tabs in tab area.
      If the showTabButtons is set to true, isHideOneTab will always return false so that there is a place to place those tab buttons.
      Returns:
      true if tab buttons are always visible; false otherwise.
    • setShowTabButtons

      public void setShowTabButtons(boolean showButtons)
      Sets the value if tab buttons are always visible. PropertyChangeEvent of SHOW_TAB_BUTTONS_PROPERTY will be fired.
      Parameters:
      showButtons - true to always show tab buttons; false otherwise.
    • setCloseAction

      public void setCloseAction(Action action)
      Sets default close action for close button.
      Parameters:
      action - the close action.
    • getCloseAction

      public Action getCloseAction()
      Gets close action.
      Returns:
      close action
    • setAutoFocusOnTabHideClose

      public void setAutoFocusOnTabHideClose(boolean autoFocusonTabHideClose)
    • isAutoFocusOnTabHideClose

      public boolean isAutoFocusOnTabHideClose()
    • resetDefaultCloseAction

      public void resetDefaultCloseAction()
      Resets close action to default. Default action is to remove currently selected tab.
    • setSuppressStateChangedEvents

      public void setSuppressStateChangedEvents(boolean suppress)
    • isSuppressStateChangedEvents

      public boolean isSuppressStateChangedEvents()
    • fireStateChanged

      protected void fireStateChanged()
      Overrides:
      fireStateChanged in class JTabbedPane
    • isSuppressSetSelectedIndex

      public boolean isSuppressSetSelectedIndex()
    • setSuppressSetSelectedIndex

      public void setSuppressSetSelectedIndex(boolean suppressSetSelectedIndex)
    • setSelectedIndex

      public void setSelectedIndex(int index)
      Overrides:
      setSelectedIndex in class JTabbedPane
    • popupSelectedIndex

      public void popupSelectedIndex(int index)
    • setComponentAt

      public void setComponentAt(int index, Component c)
      Overrides:
      setComponentAt in class JTabbedPane
    • isAutoRequestFocus

      public boolean isAutoRequestFocus()
      Checks if the UI should automatically request focus on selected component when doing the layout. This method is only used internally when the tab is being moved.
      Returns:
      true or false. Default is true.
    • setAutoRequestFocus

      public void setAutoRequestFocus(boolean autoRequestFocus)
    • moveSelectedTabTo

      public void moveSelectedTabTo(int tabIndex)
      Moves selected tab from current position to the position specified in tabIndex.
      Parameters:
      tabIndex - new index
    • requestFocusForVisibleComponent

      public boolean requestFocusForVisibleComponent()
    • isHideTrailingWhileNoButtons

      public boolean isHideTrailingWhileNoButtons()
      Get the flag that if the trailing component should be hidden while no buttons are visible.

      Be default, the flag is false. If you want to connect visibility of those two components, please set it to true.

      Returns:
      true if the trailing component would be hidden while no buttons are visible. Otherwise false.
      See Also:
    • setHideTrailingWhileNoButtons

      public void setHideTrailingWhileNoButtons(boolean hideTrailingWhileNoButtons)
      Set the flag that if the trailing component should be hidden while no buttons are visible.
      Parameters:
      hideTrailingWhileNoButtons - the flag
      See Also:
    • isLayoutTrailingComponentBeforeButtons

      public boolean isLayoutTrailingComponentBeforeButtons()
      Gets the flag indicating if the trailing component should be layout before the default buttons.
      Returns:
      true if the trailing component should be layout to the left/up. Otherwise false.
      See Also:
    • setLayoutTrailingComponentBeforeButtons

      public void setLayoutTrailingComponentBeforeButtons(boolean layoutTrailingComponentBeforeButtons)
      Sets the flag indicating if the trailing component should be layout before the default buttons.

      The default value is false. If you want your trailing component preceding to the default buttons, please set this flag to true.

      Parameters:
      layoutTrailingComponentBeforeButtons - the flag
    • processMouseSelection

      public void processMouseSelection(int tabIndex, MouseEvent e)
    • getTabHeight

      public int getTabHeight()
      Gets tab height.
      Returns:
      height of tab
    • isRightClickSelect

      public boolean isRightClickSelect()
      Returns true if you want right click on unselected tab will select that tab.
      Returns:
      true if right click on unselected tab will select that tab
    • setRightClickSelect

      public void setRightClickSelect(boolean rightClickSelect)
      Sets if you want right click on unselected tab will select that tab.
      Parameters:
      rightClickSelect - true if right click on unselected tab will select that tab
    • getTabAtLocation

      public int getTabAtLocation(int x, int y)
    • isShowGripper

      public boolean isShowGripper()
      If the grip is visible.
      Returns:
      true if grip is visible
    • setShowGripper

      public void setShowGripper(boolean showGripper)
      Sets the visibility of grip.
      Parameters:
      showGripper - true to show grip
    • isShowIconsOnTab

      public boolean isShowIconsOnTab()
      Checks if the icon will be shown on tab.
      Returns:
      true if the icon will be shown on tab.
    • setShowIconsOnTab

      public void setShowIconsOnTab(boolean showIconsOnTab)
      Sets to true if the icon will be shown on tab. The value set to this method will be used only when isUseDefaultShowIconsOnTab() returns false.
      Parameters:
      showIconsOnTab - true or false.
    • isUseDefaultShowIconsOnTab

      public boolean isUseDefaultShowIconsOnTab()
      If the return is true, the value set to setShowIconsOnTab() will be ignored.
      Returns:
      if use default value from UIDefaults in L&F.
    • setUseDefaultShowIconsOnTab

      public void setUseDefaultShowIconsOnTab(boolean useDefaultShowIconsOnTab)
      Set if use the default value from UIDefaults.
      Parameters:
      useDefaultShowIconsOnTab - true or false.
    • isShowCloseButtonOnTab

      public boolean isShowCloseButtonOnTab()
      Checks if the close button will be shown on tab.
      Returns:
      true if close button will be shown on tab.
    • setShowCloseButtonOnTab

      public void setShowCloseButtonOnTab(boolean showCloseButtonOnTab)
      Sets to true if the close button will be shown on tab. If you ever call this method, we will automatically call setUseDefaultShowCloseButtonOnTab(false). It will also automatically call setShowCloseButton(true) if the showCloseButtonOnTab parameter is true.
      Parameters:
      showCloseButtonOnTab - true or false.
    • isUseDefaultShowCloseButtonOnTab

      public boolean isUseDefaultShowCloseButtonOnTab()
      If the return is true, the value set to setShowCloseButtonOnTab() will be ignored.
      Returns:
      if use default value from UIDefaults in L&F.
    • setUseDefaultShowCloseButtonOnTab

      public void setUseDefaultShowCloseButtonOnTab(boolean useDefaultShowCloseButtonOnTab)
      Set if use the default value from UIDefaults.
      Parameters:
      useDefaultShowCloseButtonOnTab - true or false.
    • setTabEditingAllowed

      public void setTabEditingAllowed(boolean allowed)
      Sets the value if the tab editing is allowed. Tab editing allows user to edit the tab title directly by double clicking on the tab.
      Parameters:
      allowed - true or false.
    • isTabEditingAllowed

      public boolean isTabEditingAllowed()
      Checks if the tab editing is allowed.
      Returns:
      true if tab editing is allowed. Otherwise false.
    • setTabEditingValidator

      public void setTabEditingValidator(TabEditingValidator tabEditValidator)
    • getTabEditingValidator

      public TabEditingValidator getTabEditingValidator()
    • isShowCloseButton

      public boolean isShowCloseButton()
      If close button is visible.
      Returns:
      true if the close button is visible.
    • setShowCloseButton

      public void setShowCloseButton(boolean showCloseButton)
      Sets if the close button is visible. Close button can be either side by side with scroll buttons, or on each tab. If you call setShowCloseButton(false), it will hide close buttons for both cases.
      Parameters:
      showCloseButton - true or false.
    • isShowTabArea

      public boolean isShowTabArea()
      If the tab area is visible.
      Returns:
      true if the tab area is visible.
    • setShowTabArea

      public void setShowTabArea(boolean showTabArea)
      Sets if the tab area is visible. If not visible, you can programatically call setSelectedIndex to change ta. User will not be able to do it by clicking on tabs since they are not visible.
      Parameters:
      showTabArea - true or false.
    • isShowTabContent

      public boolean isShowTabContent()
      If the tab content is visible.
      Returns:
      true if the tab content is visible.
    • setShowTabContent

      public void setShowTabContent(boolean showTabContent)
      Sets if the tab content is visible.
      Parameters:
      showTabContent - true or false.
    • getStringConverter

      public StringConverter getStringConverter()
      Gets the string converter that converts the tab title to the display title.
      Returns:
      the converter that converts the tab title to the display title.
    • setStringConverter

      public void setStringConverter(StringConverter stringConverter)
      Sets the string converter.
      Parameters:
      stringConverter - the StringConverter.
      See Also:
    • getDisplayTitleAt

      public String getDisplayTitleAt(int index)
      Gets the display title. Display title is result of using string converter that converts from the title to a display title. There is no setter for display title. You control the value by using a different string converter.
      Parameters:
      index - the index to display
      Returns:
      the display title.
    • isBoldActiveTab

      public boolean isBoldActiveTab()
      If the active tab is in bold.
      Returns:
      if the active tab is in bold.
    • setBoldActiveTab

      public void setBoldActiveTab(boolean boldActiveTab)
      Sets if the active tab is in bold.
      Parameters:
      boldActiveTab - the flag
    • removeTabAt

      public void removeTabAt(int index)
      Overrides:
      removeTabAt in class JTabbedPane
    • isTabClosableAt

      public boolean isTabClosableAt(int tabIndex)
      Checks if the tab at tabIndex should show the close button. This is only a valid if showCloseButtonOnTab attribute is true.

      By default, this method always return true. Subclass can override this method to return a different value.

      Parameters:
      tabIndex - the tab index
      Returns:
      the flag.
      Throws:
      IndexOutOfBoundsException - if index is out of range (index < 0 || index >= tab count)
    • setTabClosableAt

      public void setTabClosableAt(int tabIndex, boolean closable)
      Checks if the tab at tabIndex should show the close button. This is only a valid if showCloseButtonOnTab attribute is true.

      By default, this method always return true. Subclass can override this method to return a different value.

      Please note, this attribute has effect only when isShowCloseButtonOnTab() return true.

      Parameters:
      tabIndex - the tab index
      closable - the flag indicating if the tab is closable
      Throws:
      IndexOutOfBoundsException - if index is out of range (index < 0 || index >= tab count)
    • getPageLastFocusTrackers

      protected Hashtable getPageLastFocusTrackers()
    • getLastFocusedComponent

      public Component getLastFocusedComponent(Component pageComponent)
      Gets the last focused component of a particular page.
      Parameters:
      pageComponent - the page component
      Returns:
      the last focused component of a particular page.
    • clearVisComp

      protected void clearVisComp()
    • insertTab

      public void insertTab(String title, Icon icon, Component component, String tip, int index)
      Overridden to add a PageLastFocusTracker to each page, used to update the page's last focused component.
      Overrides:
      insertTab in class JTabbedPane
    • getSelectedTabFont

      public Font getSelectedTabFont()
      Gets the font for selected tab.
      Returns:
      the font for selected tab.
    • setSelectedTabFont

      public void setSelectedTabFont(Font selectedTabFont)
      Sets the font for selected tab.
      Parameters:
      selectedTabFont - new font for selected tab.
    • getColorTheme

      public int getColorTheme()
    • getDefaultColorTheme

      public int getDefaultColorTheme()
    • setColorTheme

      public void setColorTheme(int colorTheme)
    • getTabResizeMode

      public int getTabResizeMode()
    • setTabResizeMode

      public void setTabResizeMode(int resizeMode)
      Sets the tab resize mode. There are five resize modes. - RESIZE_MODE_DEFAULT, RESIZE_MODE_NONE, RESIZE_MODE_FIT, RESIZE_MODE_FIXED and RESIZE_MODE_COMPRESSED.
      Parameters:
      resizeMode - the new resize mode.
    • getDefaultTabResizeMode

      public int getDefaultTabResizeMode()
    • getTabShape

      public int getTabShape()
    • getDefaultTabStyle

      public int getDefaultTabStyle()
    • setTabShape

      public void setTabShape(int tabShape)
    • setTabLeadingComponent

      public void setTabLeadingComponent(Component component)
      Sets the tab leading component. The tab leading component will appear before the tabs in the tab area. Please note, you must implement UIResource for the component you want to use as tab leading component.
      Parameters:
      component - the tab leading component
      Throws:
      IllegalArgumentException - if the component doesn't implement UIResource.
    • getTabLeadingComponent

      public Component getTabLeadingComponent()
    • setTabTrailingComponent

      public void setTabTrailingComponent(Component component)
      Sets the tab trailing component. The tab trailing component will appear after the tabs in the tab area. Please note, you must implement UIResource for the component you want to use as tab trailing component.
      Parameters:
      component - the tab trailing component
      Throws:
      IllegalArgumentException - if the component doesn't implement UIResource.
    • add

      public Component add(Component component)
      Overrides:
      add in class JTabbedPane
    • getTabTrailingComponent

      public Component getTabTrailingComponent()
    • isShowCloseButtonOnSelectedTab

      public boolean isShowCloseButtonOnSelectedTab()
    • setShowCloseButtonOnSelectedTab

      public void setShowCloseButtonOnSelectedTab(boolean i)
      Shows the close button on the selected tab only. You also need to setShowCloseButtonOnTab(true) and setShowCloseButton(true) if you want to setShowCloseButtonOnSelectedTab(true).
      Parameters:
      i - the flag indicating if close button should be shown in the selected tab
    • isShowCloseButtonOnMouseOver

      public boolean isShowCloseButtonOnMouseOver()
      Gets the flag indicating if the close button should only be displayed when the mouse is over the tab.
      Returns:
      true if the close button should only be displayed when the mouse is over the tab. Otherwise false.
      Since:
      3.3.3
      See Also:
    • setShowCloseButtonOnMouseOver

      public void setShowCloseButtonOnMouseOver(boolean showCloseButtonOnMouseOverOnly)
      Sets the flag indicating if the close button should only be displayed when the mouse is over the tab.

      The default value of the flag is false to keep default behavior not changed.

      Parameters:
      showCloseButtonOnMouseOverOnly - the flag
      Since:
      3.3.3
    • getTabColorProvider

      public JideTabbedPane.ColorProvider getTabColorProvider()
      Gets the tab color provider.
      Returns:
      tab color provider.
    • setTabColorProvider

      public void setTabColorProvider(JideTabbedPane.ColorProvider tabColorProvider)
      Sets the tab color provider.It allows you to set the background color of each tab. The reason to use this way instead of JTabbedPane.setBackgroundAt(int, java.awt.Color) method is because this way queries the color. So it can support unlimited number of tabs. When you don't know exactly how many tabs it will be, this way can still handle it very well. There is ONENOTE_COLOR_PROVIDER which provides the tab color as you see in Microsoft OneNote 2003. You can also define your own ColorProvider to fit your application color theme.
      Parameters:
      tabColorProvider - the tab color provider
    • editTabAt

      public void editTabAt(int tabIndex)
      Starts tab editing. This works only when setTabEditingAllowed(boolean) is set to true.
      Parameters:
      tabIndex - the index of the tab
    • isTabEditing

      public boolean isTabEditing()
      Checks if tab is in editing mode.
      Returns:
      true if editing.
    • stopTabEditing

      public void stopTabEditing()
    • cancelTabEditing

      public void cancelTabEditing()
    • getEditingTabIndex

      public int getEditingTabIndex()
    • createFocusChangeListener

      protected PropertyChangeListener createFocusChangeListener()
    • repaintTabAreaAndContentBorder

      public void repaintTabAreaAndContentBorder()
      Repaints the tab area and the content border if any. This is mainly for the focus border in JideTabbedPane Office2003 and Eclipse3x style.
    • repaintContentBorder

      protected void repaintContentBorder(int x, int y, int width, int height)
      Calls repaint on the specified rectangular area.
      Parameters:
      x - the x coordinate
      y - the y coordinate
      width - the width
      height - the height
    • addNotify

      public void addNotify()
      Overrides:
      addNotify in class JComponent
    • removeNotify

      public void removeNotify()
      Overrides:
      removeNotify in class JComponent
    • getTabListCellRenderer

      public ListCellRenderer getTabListCellRenderer()
      Gets the tab list cell renderer. This renderer is used to render the list in the popup when tab list button is pressed.
      Returns:
      the tab list cell renderer.
      See Also:
    • setTabListCellRenderer

      public void setTabListCellRenderer(ListCellRenderer tabListCellRenderer)
      Sets the tab list cell renderer. This renderer is used to render the list in the popup when tab list button is pressed. In this list cell renderer, the value will always be the JideTabbedPane. The index will tell you which tab it is. See below for the default cell renderer we used.
       public static class TabListCellRenderer extends DefaultListCellRenderer {
           public Component getListCellRendererComponent(JList list, Object value, int index,
       boolean isSelected, boolean cellHasFocus) {
               if (value instanceof JideTabbedPane) { // will always be true
                   JideTabbedPane tabbedPane = (JideTabbedPane) value;
                   String title = tabbedPane.getTitleAt(index);
                   Icon icon = tabbedPane.getIconAt(index);
                   JLabel label = (JLabel) super.getListCellRendererComponent(list, title, index,
       isSelected, cellHasFocus);
                   label.setIcon(icon);
                   return label;
               }
               else {
                   return super.getListCellRendererComponent(list, value, index, isSelected,
       cellHasFocus);
               }
           }
       }
       
      You can create your own cell renderer either extending JideTabbedPane.TabListCellRenderer or starting from scratch.
      Parameters:
      tabListCellRenderer - the cell renderer
    • hasFocusComponent

      public boolean hasFocusComponent()
      Checks if the JideTabbedPane has the focus component. If true, in some styles such as Office2003 style, we will paint a background on the insets to indicate the tabbed pane has focus.
      Returns:
      true if the JideTabbedPane has the focus component. Otherwise false.
    • getContentBorderInsets

      public Insets getContentBorderInsets()
    • setContentBorderInsets

      public void setContentBorderInsets(Insets contentBorderInsets)
      Sets the content border insets. It's the inserts around the JideTabbedPane's content. The direction of the insets is when the tabs are on top. We will rotate it automatically when the tabs are on other directions.
      Parameters:
      contentBorderInsets - the content border insets
    • getTabAreaInsets

      public Insets getTabAreaInsets()
    • setTabAreaInsets

      public void setTabAreaInsets(Insets tabAreaInsets)
      Sets the tab area insets. It's the inserts around the tabs. The direction of the insets is when the tabs are on top. We will rotate it automatically when the tabs are on other directions.
      Parameters:
      tabAreaInsets - the content border insets
    • getTabInsets

      public Insets getTabInsets()
    • setTabInsets

      public void setTabInsets(Insets tabInsets)
      Sets the tab insets. It's the inserts around the JideTabbedPane's tab. The direction of the insets is when the tabs are on top. We will rotate it automatically when the tabs are on other directions.
      Parameters:
      tabInsets - the content border insets
    • isDragOverDisabled

      public boolean isDragOverDisabled()
      Checks the dragOverDisabled property. By default it is false.
      Returns:
      true or false.
      See Also:
    • setDragOverDisabled

      public void setDragOverDisabled(boolean dragOverDisabled)
      Sets the dragOverDisabled property. Default is false. It means when you drag something over an unselected tab, the tab will be selected automatically. You may want to set it to true if you want to add your own drop listener to the tabs.
      Parameters:
      dragOverDisabled - the flag indicating if drag over is disabled
    • scrollSelectedTabToVisible

      public void scrollSelectedTabToVisible(boolean scrollLeft)
      Scroll the selected tab visible in case the tab is outside of the viewport.
      Parameters:
      scrollLeft - true to scroll the first tab visible first then scroll left to make the selected tab visible. This will get a more consistent result. If false, it will simple scroll the selected tab visible. Sometimes the tab will appear as the first visible tab or the last visible tab depending on the previous viewport position.
    • addTabEditingListener

      public void addTabEditingListener(TabEditingListener l)
      Adds a TabEditingListener to this tabbedpane.
      Parameters:
      l - the TabEditingListener to add
      See Also:
    • removeTabEditingListener

      public void removeTabEditingListener(TabEditingListener l)
      Removes a TabEditingListener from this tabbedpane.
      Parameters:
      l - the TabEditingListener to remove
      See Also:
    • getTabEditingListeners

      public TabEditingListener[] getTabEditingListeners()
      Returns an array of all the TabEditingListeners added to this JTabbedPane with addTabEditingListener.
      Returns:
      all of the TabEditingListeners added or an empty array if no listeners have been added
    • fireTabEditing

      protected void fireTabEditing(int id, int index, String oldTitle, String newTitle)
    • getIconForTab

      public Icon getIconForTab(int tabIndex)
      Gets the icon for the tab after looking at the UIDefault "JideTabbedPane.showIconOnTab" and isShowIconsOnTab(). Note that getIconAt method will always return the tab even though the icon is not displayed because the two flags above.
      Parameters:
      tabIndex - the tab index.
      Returns:
      the icon for the tab at the specified index.
    • isScrollSelectedTabOnWheel

      public boolean isScrollSelectedTabOnWheel()
      Checks if the selected tab will be changed on mouse wheel event.
      Returns:
      true or false.
    • setScrollSelectedTabOnWheel

      public void setScrollSelectedTabOnWheel(boolean scrollSelectedTabOnWheel)
      If true, the selected tab will be changed on mouse wheel. It is false by default.
      Parameters:
      scrollSelectedTabOnWheel - the flag
    • isCloseTabOnMouseMiddleButton

      public boolean isCloseTabOnMouseMiddleButton()
      Get the flag if clicking middle mouse button can close the tab. It is false by default.
      Returns:
      the flag.
    • setCloseTabOnMouseMiddleButton

      public void setCloseTabOnMouseMiddleButton(boolean closeTabOnMouseMiddleButton)
      Set the flag if clicking middle mouse button can close the tab. It is false by default.
      Parameters:
      closeTabOnMouseMiddleButton - the flag
    • getTabAlignment

      public int getTabAlignment()
      Returns the alignment of the tabs for this tabbed pane.
      Returns:
      the alignment of the tabs for this tabbed pane.
      See Also:
    • setTabAlignment

      public void setTabAlignment(int tabAlignment)
      Sets the tab alignment for the tabs of a tabbed pane. Currently it only supports top and bottom tab placement. Possible values are:
      • JideTabbedPane.LEADING
      • JideTabbedPane.CENTER
      The default value, if not set, is JideTabbedPane.LEADING.
      Parameters:
      tabAlignment - the alignment for the tabs relative to the content
      Throws:
      IllegalArgumentException - if tab alignment value isn't one of the above valid values
    • getResourceString

      public String getResourceString(String key)
      Gets the resource string used in JideTabbedPane. Subclass can override it to provide their own strings.
      Parameters:
      key - the resource key
      Returns:
      the localized string.
    • createTabListPopup

      protected JidePopup createTabListPopup()
      Creates tab list popup.
      Returns:
      the tab list popup instance.
      Since:
      3.2.2
    • isTabListPopupVisible

      public boolean isTabListPopupVisible()
      Checks if the tab list popup is visible.
      Returns:
      true if the tab list popup is visible. Otherwise false.
      Since:
      3.2.2
    • hideTabListPopup

      public void hideTabListPopup()
      Hides the tab list popup if it's visible.
      Since:
      3.2.2
    • showTabListPopup

      public void showTabListPopup(JButton listButton)
      Shows the tab list popup by clicking on the list button.
      Parameters:
      listButton - the list button being clicked.
      Since:
      3.2.2
    • calculateTabListPopupPosition

      protected Point calculateTabListPopupPosition(JButton listButton)
      Calculates the position where the tab list popup is to be displayed based on the list button being clicked.
      Parameters:
      listButton - the list button being clicked.
      Returns:
      the point.
      Since:
      3.2.2
    • createTabList

      protected JList createTabList(Insets insets)
      Creates the tab list.
      Parameters:
      insets - the insets of its parent container which helps determine the visible row count of the list.
      Returns:
      the created list instance.
      Since:
      3.2.2
    • createNoFocusButton

      public JideTabbedPane.NoFocusButton createNoFocusButton(int type)
      Creates no focus buttons for JideTabbedPane.
      Parameters:
      type - the button type, it could be BUTTON_LIST, BUTTON_CLOSE, BUTTON_EAST, BUTTON_WEST, BUTTON_NORTH or BUTTON_SOUTH
      Returns:
      the button instance.
    • removeAll

      public void removeAll()
      Overrides:
      removeAll in class JTabbedPane