jtabbedpane.java
来自「Mac OS X 10.4.9 for x86 Source Code gcc」· Java 代码 · 共 1,477 行 · 第 1/3 页
JAVA
1,477 行
*/ public void setMnemonic(char aChar) { mnemonicKey = aChar; if (title != null) setDisplayedMnemonicIndex(title.indexOf(mnemonicKey)); } /** * This method returns the mnemonicIndex. * * @return The mnemonicIndex. */ public int getDisplayedMnemonicIndex() { return underlinedChar; } /** * This method sets the mnemonicIndex. * * @param index The mnemonicIndex. * * @throws IllegalArgumentException If index less than -1 || index greater * or equal to title.length. */ public void setDisplayedMnemonicIndex(int index) throws IllegalArgumentException { if (index < -1 || title != null && index >= title.length()) throw new IllegalArgumentException(); if (title == null || mnemonicKey == 0 || title.charAt(index) != mnemonicKey) index = -1; underlinedChar = index; } } /** The changeEvent used to fire changes to listeners. */ protected ChangeEvent changeEvent; /** The listener that listens to the model. */ protected ChangeListener changeListener; /** The model that describes this JTabbedPane. */ protected SingleSelectionModel model; /** Indicates that the TabbedPane is in scrolling mode. */ public static final int SCROLL_TAB_LAYOUT = 1; /** Indicates that the TabbedPane is in wrap mode. */ public static final int WRAP_TAB_LAYOUT = 0; /** The current tabPlacement of the TabbedPane. */ protected int tabPlacement = SwingConstants.TOP; /** The current tabLayoutPolicy of the TabbedPane. */ private transient int layoutPolicy; /** The list of tabs associated with the TabbedPane. */ transient Vector tabs = new Vector(); /** * Creates a new JTabbedPane object with tabs on top and using wrap tab * layout. */ public JTabbedPane() { this(SwingConstants.TOP, WRAP_TAB_LAYOUT); } /** * Creates a new JTabbedPane object using wrap tab layout and the given * tabPlacement. * * @param tabPlacement Where the tabs will be placed. */ public JTabbedPane(int tabPlacement) { this(tabPlacement, WRAP_TAB_LAYOUT); } /** * Creates a new JTabbedPane object with the given tabPlacement and * tabLayoutPolicy. * * @param tabPlacement Where the tabs will be placed. * @param tabLayoutPolicy The way tabs will be placed. * * @throws IllegalArgumentException If tabLayoutPolicy or tabPlacement are * not valid. */ public JTabbedPane(int tabPlacement, int tabLayoutPolicy) { if (tabPlacement != TOP && tabPlacement != BOTTOM && tabPlacement != RIGHT && tabPlacement != LEFT) throw new IllegalArgumentException("tabPlacement is not valid."); if (tabLayoutPolicy != SCROLL_TAB_LAYOUT && tabLayoutPolicy != WRAP_TAB_LAYOUT) throw new IllegalArgumentException("tabLayoutPolicy is not valid."); this.tabPlacement = tabPlacement; layoutPolicy = tabLayoutPolicy; changeEvent = new ChangeEvent(this); changeListener = createChangeListener(); model = new DefaultSingleSelectionModel(); model.addChangeListener(changeListener); updateUI(); } /** * This method returns the UI used to display the JTabbedPane. * * @return The UI used to display the JTabbedPane. */ public TabbedPaneUI getUI() { return (TabbedPaneUI) ui; } /** * This method sets the UI used to display the JTabbedPane. * * @param ui The UI used to display the JTabbedPane. */ public void setUI(TabbedPaneUI ui) { super.setUI(ui); } /** * This method restores the UI to the defaults given by the UIManager. */ public void updateUI() { setUI((TabbedPaneUI) UIManager.getUI(this)); invalidate(); } /** * This method returns a string identifier that is used to determine which * UI will be used with the JTabbedPane. * * @return A string identifier for the UI. */ public String getUIClassID() { return "TabbedPaneUI"; } /** * This method creates a ChangeListener that is used to listen to the model * for events. * * @return A ChangeListener to listen to the model. */ protected ChangeListener createChangeListener() { return new ModelListener(); } /** * This method adds a ChangeListener to the JTabbedPane. * * @param l The ChangeListener to add. */ public void addChangeListener(ChangeListener l) { listenerList.add(ChangeListener.class, l); } /** * This method removes a ChangeListener to the JTabbedPane. * * @param l The ChangeListener to remove. */ public void removeChangeListener(ChangeListener l) { listenerList.remove(ChangeListener.class, l); } /** * This method fires a ChangeEvent to all the JTabbedPane's ChangeListeners. */ protected void fireStateChanged() { Object[] changeListeners = listenerList.getListenerList(); if (changeEvent == null) changeEvent = new ChangeEvent(this); for (int i = changeListeners.length - 2; i >= 0; i -= 2) { if (changeListeners[i] == ChangeListener.class) ((ChangeListener) changeListeners[i + 1]).stateChanged(changeEvent); } } /** * This method returns all ChangeListeners registered with the JTabbedPane. * * @return The ChangeListeners registered with the JTabbedPane. */ public ChangeListener[] getChangeListeners() { return (ChangeListener[]) super.getListeners(ChangeListener.class); } /** * This method returns the model used with the JTabbedPane. * * @return The JTabbedPane's model. */ public SingleSelectionModel getModel() { return model; } /** * This method changes the model property of the JTabbedPane. * * @param model The new model to use with the JTabbedPane. */ public void setModel(SingleSelectionModel model) { if (model != this.model) { SingleSelectionModel oldModel = this.model; this.model.removeChangeListener(changeListener); this.model = model; this.model.addChangeListener(changeListener); firePropertyChange("model", oldModel, this.model); } } /** * This method returns the tabPlacement. * * @return The tabPlacement used with the JTabbedPane. */ public int getTabPlacement() { return tabPlacement; } /** * This method changes the tabPlacement property of the JTabbedPane. * * @param tabPlacement The tabPlacement to use. * * @throws IllegalArgumentException If tabPlacement is not one of TOP, * BOTTOM, LEFT, or RIGHT. */ public void setTabPlacement(int tabPlacement) { if (tabPlacement != TOP && tabPlacement != BOTTOM && tabPlacement != RIGHT && tabPlacement != LEFT) throw new IllegalArgumentException("tabPlacement is not valid."); if (tabPlacement != this.tabPlacement) { int oldPlacement = this.tabPlacement; this.tabPlacement = tabPlacement; firePropertyChange("tabPlacement", oldPlacement, this.tabPlacement); } } /** * This method returns the tabLayoutPolicy. * * @return The tabLayoutPolicy. */ public int getTabLayoutPolicy() { return layoutPolicy; } /** * This method changes the tabLayoutPolicy property of the JTabbedPane. * * @param tabLayoutPolicy The tabLayoutPolicy to use. * * @throws IllegalArgumentException If tabLayoutPolicy is not one of * SCROLL_TAB_LAYOUT or WRAP_TAB_LAYOUT. */ public void setTabLayoutPolicy(int tabLayoutPolicy) { if (tabLayoutPolicy != SCROLL_TAB_LAYOUT && tabLayoutPolicy != WRAP_TAB_LAYOUT) throw new IllegalArgumentException("tabLayoutPolicy is not valid."); if (tabLayoutPolicy != layoutPolicy) { int oldPolicy = layoutPolicy; layoutPolicy = tabLayoutPolicy; firePropertyChange("tabLayoutPolicy", oldPolicy, layoutPolicy); } } /** * This method returns the index of the tab that is currently selected. * * @return The index of the selected tab. */ public int getSelectedIndex() { return model.getSelectedIndex(); } /** * This method checks the index. * * @param index The index to check. * @param start DOCUMENT ME! * @param end DOCUMENT ME! * * @throws IndexOutOfBoundsException DOCUMENT ME! */ private void checkIndex(int index, int start, int end) { if (index < start || index >= end) throw new IndexOutOfBoundsException("Index < " + start + " || Index >= " + end); } /** * This method sets the selected index. This method will hide the old * component and show the new component. * * @param index The index to set it at. */ public void setSelectedIndex(int index) { checkIndex(index, -1, tabs.size()); if (index != getSelectedIndex()) { if (getSelectedIndex() != -1 && getSelectedComponent() != null) getSelectedComponent().hide(); if (index != -1 && getComponentAt(index) != null) getComponentAt(index).show(); model.setSelectedIndex(index); } } /** * This method returns the component at the selected index. * * @return The component at the selected index. */ public Component getSelectedComponent() { return getComponentAt(getSelectedIndex()); } /** * This method sets the component at the selected index. * * @param c The component associated with the selected index. */ public void setSelectedComponent(Component c) { if (c.getParent() == this) setSelectedIndex(indexOfComponent(c)); else setComponentAt(getSelectedIndex(), c); } /** * This method inserts tabs into JTabbedPane. This includes adding the * component to the JTabbedPane and hiding it. * * @param title The title of the tab. * @param icon The tab's icon. * @param component The component associated with the tab. * @param tip The tooltip for the tab. * @param index The index to insert the tab at. */ public void insertTab(String title, Icon icon, Component component, String tip, int index) { Page p = new Page(title, icon, component, tip); tabs.insertElementAt(p, index); // Hide the component so we don't see it. Do it before we parent it // so we don't trigger a repaint. if (component != null) { component.hide(); super.add(component); } if (getSelectedIndex() == -1) setSelectedIndex(0); layout(); repaint(); } /** * This method adds a tab to the JTabbedPane. * * @param title The title of the tab. * @param icon The icon for the tab. * @param component The associated component. * @param tip The associated tooltip. */ public void addTab(String title, Icon icon, Component component, String tip) { insertTab(title, icon, component, tip, tabs.size()); } /** * This method adds a tab to the JTabbedPane. * * @param title The title of the tab. * @param icon The icon for the tab. * @param component The associated component. */ public void addTab(String title, Icon icon, Component component) { insertTab(title, icon, component, null, tabs.size()); } /** * This method adds a tab to the JTabbedPane. * * @param title The title of the tab. * @param component The associated component. */ public void addTab(String title, Component component) { insertTab(title, null, component, null, tabs.size()); } /** * This method adds a tab to the JTabbedPane. The title of the tab is the * Component's name. If the Component is an instance of UIResource, it * doesn't add the tab and instead add the component directly to the * JTabbedPane. * * @param component The associated component. * * @return The Component that was added. */ public Component add(Component component) { if (component instanceof UIResource) super.add(component); else insertTab(component.getName(), null, component, null, tabs.size()); return component; } /** * This method adds a tab to the JTabbedPane. If the Component is an * instance of UIResource, it doesn't add the tab and instead add the * component directly to the JTabbedPane. * * @param title The title of the tab. * @param component The associated component. * * @return The Component that was added. */ public Component add(String title, Component component) { if (component instanceof UIResource) super.add(component); else insertTab(title, null, component, null, tabs.size()); return component; } /** * This method adds a tab to the JTabbedPane. If the Component is an * instance of UIResource, it doesn't add the tab and instead add the * component directly to the JTabbedPane. * * @param component The associated component. * @param index The index to insert the tab at. * * @return The Component that was added. */ public Component add(Component component, int index) { if (component instanceof UIResource) super.add(component); else insertTab(component.getName(), null, component, null, index); return component; } /** * This method adds a tab to the JTabbedPane. If the Component is an * instance of UIResource, it doesn't add the tab and instead add the
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?