mirror of
https://github.com/autc04/Retro68.git
synced 2024-12-04 01:50:38 +00:00
799 lines
22 KiB
Java
799 lines
22 KiB
Java
/* JToolBar.java --
|
|
Copyright (C) 2002, 2004, 2005, 2006, Free Software Foundation, Inc.
|
|
|
|
This file is part of GNU Classpath.
|
|
|
|
GNU Classpath is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2, or (at your option)
|
|
any later version.
|
|
|
|
GNU Classpath is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
|
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
02110-1301 USA.
|
|
|
|
Linking this library statically or dynamically with other modules is
|
|
making a combined work based on this library. Thus, the terms and
|
|
conditions of the GNU General Public License cover the whole
|
|
combination.
|
|
|
|
As a special exception, the copyright holders of this library give you
|
|
permission to link this library with independent modules to produce an
|
|
executable, regardless of the license terms of these independent
|
|
modules, and to copy and distribute the resulting executable under
|
|
terms of your choice, provided that you also meet, for each linked
|
|
independent module, the terms and conditions of the license of that
|
|
module. An independent module is a module which is not derived from
|
|
or based on this library. If you modify this library, you may extend
|
|
this exception to your version of the library, but you are not
|
|
obligated to do so. If you do not wish to do so, delete this
|
|
exception statement from your version. */
|
|
|
|
|
|
package javax.swing;
|
|
|
|
import gnu.java.lang.CPStringBuilder;
|
|
|
|
import java.awt.Component;
|
|
import java.awt.Container;
|
|
import java.awt.Dimension;
|
|
import java.awt.Graphics;
|
|
import java.awt.Insets;
|
|
import java.awt.LayoutManager;
|
|
import java.beans.PropertyChangeListener;
|
|
|
|
import javax.accessibility.Accessible;
|
|
import javax.accessibility.AccessibleContext;
|
|
import javax.accessibility.AccessibleRole;
|
|
import javax.accessibility.AccessibleStateSet;
|
|
import javax.swing.plaf.ToolBarUI;
|
|
|
|
/**
|
|
* JToolBar is a component that provides a toolbar to Swing programs. Users
|
|
* can add buttons (or actions that will be represented by JButtons) as well
|
|
* as other components to the JToolBar. JToolBars can be dragged in and out
|
|
* of their parent components. If the JToolBar is dragged out of the parent,
|
|
* then it will be displayed in its own RootPaneContainer. For dragging to
|
|
* work properly, JToolBars need to be placed in a Container that has a
|
|
* BorderLayout. That parent Container cannot have components in the NORTH,
|
|
* EAST, SOUTH, or WEST components (that is not the JToolBar).
|
|
*/
|
|
public class JToolBar extends JComponent implements SwingConstants, Accessible
|
|
{
|
|
/**
|
|
* Provides the accessibility features for the <code>JToolBar</code>
|
|
* component.
|
|
*/
|
|
protected class AccessibleJToolBar extends AccessibleJComponent
|
|
{
|
|
private static final long serialVersionUID = -5516888265903814215L;
|
|
|
|
/**
|
|
* Creates a new <code>AccessibleJToolBar</code> instance.
|
|
*/
|
|
protected AccessibleJToolBar()
|
|
{
|
|
// Nothing to do here.
|
|
}
|
|
|
|
/**
|
|
* Returns a set containing the current state of the {@link JToolBar}
|
|
* component. The current implementation simply calls the superclass.
|
|
*
|
|
* @return The accessible state set.
|
|
*/
|
|
public AccessibleStateSet getAccessibleStateSet()
|
|
{
|
|
// running tests against the reference implementation, I was unable
|
|
// to find any state information that is set specifically by the
|
|
// tool bar...
|
|
return super.getAccessibleStateSet();
|
|
}
|
|
|
|
/**
|
|
* Returns the accessible role for the <code>JToolBar</code> component.
|
|
*
|
|
* @return {@link AccessibleRole#TOOL_BAR}.
|
|
*/
|
|
public AccessibleRole getAccessibleRole()
|
|
{
|
|
return AccessibleRole.TOOL_BAR;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This is the private JToolBar layout manager.
|
|
*/
|
|
private class DefaultToolBarLayout implements LayoutManager
|
|
{
|
|
/**
|
|
* This method is called when a new component is added to the container.
|
|
*
|
|
* @param name The name of the component added.
|
|
* @param comp The component that was added.
|
|
*/
|
|
public void addLayoutComponent(String name, Component comp)
|
|
{
|
|
// Do nothing.
|
|
}
|
|
|
|
/**
|
|
* This method is called to lay out the given container to position and
|
|
* size the child components.
|
|
*
|
|
* @param c The container to lay out.
|
|
*
|
|
* @throws Error DOCUMENT ME!
|
|
*/
|
|
public void layoutContainer(Container c)
|
|
{
|
|
if (! (c instanceof JToolBar))
|
|
throw new Error("DefaultToolBarLayout can only be used on JToolBars.");
|
|
Insets insets = getInsets();
|
|
Insets margin = getMargin();
|
|
int middle;
|
|
if (margin != null)
|
|
{
|
|
insets.left += margin.left;
|
|
insets.top += margin.top;
|
|
insets.bottom += margin.bottom;
|
|
insets.right += margin.right;
|
|
}
|
|
Component[] components = c.getComponents();
|
|
Dimension tdims = c.getSize();
|
|
int start = 0;
|
|
Dimension pref;
|
|
|
|
if (getOrientation() == SwingUtilities.HORIZONTAL)
|
|
{
|
|
start += insets.left;
|
|
for (int i = 0; i < components.length; i++)
|
|
{
|
|
if (components[i] != null && components[i].isVisible())
|
|
{
|
|
pref = components[i].getPreferredSize();
|
|
if (pref != null)
|
|
{
|
|
middle = (tdims.height - pref.height) / 2;
|
|
components[i].setBounds(start, middle, pref.width,
|
|
pref.height);
|
|
start += pref.width;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
start += insets.top;
|
|
for (int i = 0; i < components.length; i++)
|
|
{
|
|
if (components[i] != null && components[i].isVisible())
|
|
{
|
|
pref = components[i].getPreferredSize();
|
|
if (pref != null)
|
|
{
|
|
middle = (tdims.width - pref.width) / 2;
|
|
components[i].setBounds(middle, start, pref.width,
|
|
pref.height);
|
|
start += pref.height;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This method returns the minimum size of the given container given the
|
|
* child components.
|
|
*
|
|
* @param parent The container to measure.
|
|
*
|
|
* @return The minimum size of the given container.
|
|
*/
|
|
public Dimension minimumLayoutSize(Container parent)
|
|
{
|
|
return preferredLayoutSize(parent);
|
|
}
|
|
|
|
/**
|
|
* This method returns the preferred size of the given container given the
|
|
* child components.
|
|
*
|
|
* @param parent The container to measure.
|
|
*
|
|
* @return The preferred size of the given container.
|
|
*/
|
|
public Dimension preferredLayoutSize(Container parent)
|
|
{
|
|
int orientation = getOrientation();
|
|
Component[] components = getComponents();
|
|
|
|
int limit = 0;
|
|
int total = 0;
|
|
Dimension dims;
|
|
|
|
int w = 0;
|
|
int h = 0;
|
|
|
|
if (orientation == SwingConstants.HORIZONTAL)
|
|
{
|
|
for (int i = 0; i < components.length; i++)
|
|
{
|
|
dims = components[i].getPreferredSize();
|
|
if (dims != null)
|
|
{
|
|
if (dims.height > limit)
|
|
limit = dims.height;
|
|
total += dims.width;
|
|
}
|
|
}
|
|
w = total;
|
|
h = limit;
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < components.length; i++)
|
|
{
|
|
dims = components[i].getPreferredSize();
|
|
if (dims != null)
|
|
{
|
|
if (dims.width > limit)
|
|
limit = dims.width;
|
|
total += dims.height;
|
|
}
|
|
}
|
|
w = limit;
|
|
h = total;
|
|
}
|
|
|
|
Insets insets = getInsets();
|
|
w += insets.left + insets.right;
|
|
h += insets.top + insets.bottom;
|
|
|
|
Insets margin = getMargin();
|
|
if (margin != null)
|
|
{
|
|
w += margin.left + margin.right;
|
|
h += margin.top + margin.bottom;
|
|
}
|
|
|
|
return new Dimension(w, h);
|
|
}
|
|
|
|
/**
|
|
* This method is called when the given component is removed from the
|
|
* container.
|
|
*
|
|
* @param comp The component removed.
|
|
*/
|
|
public void removeLayoutComponent(Component comp)
|
|
{
|
|
// Do nothing.
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This is an extension of JSeparator used in toolbars. Unlike JSeparator,
|
|
* nothing is painted for this Separator, it is only blank space that
|
|
* separates components.
|
|
*/
|
|
public static class Separator extends JSeparator
|
|
{
|
|
/** DOCUMENT ME! */
|
|
private static final long serialVersionUID = -1656745644823105219L;
|
|
|
|
/**
|
|
* Creates a new Separator object.
|
|
*/
|
|
public Separator()
|
|
{
|
|
super();
|
|
} // Separator()
|
|
|
|
/**
|
|
* Creates a new Separator object with the given size.
|
|
*
|
|
* @param size The size of the separator.
|
|
*/
|
|
public Separator(Dimension size)
|
|
{
|
|
setPreferredSize(size);
|
|
} // Separator()
|
|
|
|
/**
|
|
* This method returns the String ID of the UI class of Separator.
|
|
*
|
|
* @return The UI class' String ID.
|
|
*/
|
|
public String getUIClassID()
|
|
{
|
|
return "ToolBarSeparatorUI";
|
|
} // getUIClassID()
|
|
|
|
/**
|
|
* This method returns the preferred size of the Separator.
|
|
*
|
|
* @return The preferred size of the Separator.
|
|
*/
|
|
public Dimension getPreferredSize()
|
|
{
|
|
return super.getPreferredSize();
|
|
} // getPreferredSize()
|
|
|
|
/**
|
|
* This method returns the maximum size of the Separator.
|
|
*
|
|
* @return The maximum size of the Separator.
|
|
*/
|
|
public Dimension getMaximumSize()
|
|
{
|
|
return super.getPreferredSize();
|
|
} // getMaximumSize()
|
|
|
|
/**
|
|
* This method returns the minimum size of the Separator.
|
|
*
|
|
* @return The minimum size of the Separator.
|
|
*/
|
|
public Dimension getMinimumSize()
|
|
{
|
|
return super.getPreferredSize();
|
|
} // getMinimumSize()
|
|
|
|
/**
|
|
* This method returns the size of the Separator.
|
|
*
|
|
* @return The size of the Separator.
|
|
*/
|
|
public Dimension getSeparatorSize()
|
|
{
|
|
return super.getPreferredSize();
|
|
} // getSeparatorSize()
|
|
|
|
/**
|
|
* This method sets the size of the Separator.
|
|
*
|
|
* @param size The new size of the Separator.
|
|
*/
|
|
public void setSeparatorSize(Dimension size)
|
|
{
|
|
setPreferredSize(size);
|
|
} // setSeparatorSize()
|
|
} // Separator
|
|
|
|
/** DOCUMENT ME! */
|
|
private static final long serialVersionUID = -1269915519555129643L;
|
|
|
|
/** Whether the JToolBar paints its border. */
|
|
private transient boolean paintBorder = true;
|
|
|
|
/** The extra insets around the JToolBar. */
|
|
private transient Insets margin;
|
|
|
|
/** Whether the JToolBar can float (and be dragged around). */
|
|
private transient boolean floatable = true;
|
|
|
|
/** Whether the buttons will have rollover borders. */
|
|
private transient boolean rollover;
|
|
|
|
/** The orientation of the JToolBar. */
|
|
private int orientation = HORIZONTAL;
|
|
|
|
/**
|
|
* This method creates a new JToolBar object with horizontal orientation
|
|
* and no name.
|
|
*/
|
|
public JToolBar()
|
|
{
|
|
this(null, HORIZONTAL);
|
|
} // JToolBar()
|
|
|
|
/**
|
|
* This method creates a new JToolBar with the given orientation and no
|
|
* name.
|
|
*
|
|
* @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
|
|
*/
|
|
public JToolBar(int orientation)
|
|
{
|
|
this(null, orientation);
|
|
} // JToolBar()
|
|
|
|
/**
|
|
* This method creates a new JToolBar object with the given name and
|
|
* horizontal orientation.
|
|
*
|
|
* @param name Name assigned to undocked tool bar.
|
|
*/
|
|
public JToolBar(String name)
|
|
{
|
|
this(name, HORIZONTAL);
|
|
} // JToolBar()
|
|
|
|
/**
|
|
* This method creates a new JToolBar object with the given name and
|
|
* orientation.
|
|
*
|
|
* @param name Name assigned to undocked tool bar.
|
|
* @param orientation JToolBar orientation (HORIZONTAL or VERTICAL)
|
|
*/
|
|
public JToolBar(String name, int orientation)
|
|
{
|
|
setName(name);
|
|
setOrientation(orientation);
|
|
setLayout(new DefaultToolBarLayout());
|
|
revalidate();
|
|
setOpaque(true);
|
|
updateUI();
|
|
}
|
|
|
|
/**
|
|
* This method adds a new JButton that performs the given Action to the
|
|
* JToolBar.
|
|
*
|
|
* @param action The Action to add to the JToolBar.
|
|
*
|
|
* @return The JButton that wraps the Action.
|
|
*/
|
|
public JButton add(Action action)
|
|
{
|
|
JButton b = createActionComponent(action);
|
|
add(b);
|
|
return b;
|
|
} // add()
|
|
|
|
/**
|
|
* This method paints the border if the borderPainted property is true.
|
|
*
|
|
* @param graphics The graphics object to paint with.
|
|
*/
|
|
protected void paintBorder(Graphics graphics)
|
|
{
|
|
if (paintBorder && isFloatable())
|
|
super.paintBorder(graphics);
|
|
} // paintBorder()
|
|
|
|
/**
|
|
* This method returns the UI class used to paint this JToolBar.
|
|
*
|
|
* @return The UI class for this JToolBar.
|
|
*/
|
|
public ToolBarUI getUI()
|
|
{
|
|
return (ToolBarUI) ui;
|
|
} // getUI()
|
|
|
|
/**
|
|
* This method sets the UI used with the JToolBar.
|
|
*
|
|
* @param ui The UI used with the JToolBar.
|
|
*/
|
|
public void setUI(ToolBarUI ui)
|
|
{
|
|
super.setUI(ui);
|
|
} // setUI()
|
|
|
|
/**
|
|
* This method resets the UI used to the Look and Feel defaults.
|
|
*/
|
|
public void updateUI()
|
|
{
|
|
setUI((ToolBarUI) UIManager.getUI(this));
|
|
}
|
|
|
|
/**
|
|
* This method returns the String identifier for the UI class to the used
|
|
* with the JToolBar.
|
|
*
|
|
* @return The String identifier for the UI class.
|
|
*/
|
|
public String getUIClassID()
|
|
{
|
|
return "ToolBarUI";
|
|
} // getUIClassID()
|
|
|
|
/**
|
|
* This method sets the rollover property for the JToolBar. In rollover
|
|
* mode, JButtons inside the JToolBar will only display their borders when
|
|
* the mouse is moving over them.
|
|
*
|
|
* @param b The new rollover property.
|
|
*/
|
|
public void setRollover(boolean b)
|
|
{
|
|
if (b != rollover)
|
|
{
|
|
rollover = b;
|
|
firePropertyChange("rollover", ! rollover, rollover);
|
|
revalidate();
|
|
repaint();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This method returns the rollover property.
|
|
*
|
|
* @return The rollover property.
|
|
*/
|
|
public boolean isRollover()
|
|
{
|
|
return rollover;
|
|
}
|
|
|
|
/**
|
|
* This method returns the index of the given component.
|
|
*
|
|
* @param component The component to find.
|
|
*
|
|
* @return The index of the given component.
|
|
*/
|
|
public int getComponentIndex(Component component)
|
|
{
|
|
Component[] components = getComponents();
|
|
if (components == null)
|
|
return -1;
|
|
|
|
for (int i = 0; i < components.length; i++)
|
|
if (components[i] == component)
|
|
return i;
|
|
|
|
return -1;
|
|
} // getComponentIndex()
|
|
|
|
/**
|
|
* This method returns the component at the given index.
|
|
*
|
|
* @param index The index of the component.
|
|
*
|
|
* @return The component at the given index.
|
|
*/
|
|
public Component getComponentAtIndex(int index)
|
|
{
|
|
return getComponent(index);
|
|
} // getComponentAtIndex()
|
|
|
|
/**
|
|
* This method returns the margin property.
|
|
*
|
|
* @return The margin property.
|
|
*/
|
|
public Insets getMargin()
|
|
{
|
|
return margin;
|
|
} // getMargin()
|
|
|
|
/**
|
|
* This method sets the margin property. The margin property determines the
|
|
* extra space between the children components of the JToolBar and the
|
|
* border.
|
|
*
|
|
* @param margin The margin property.
|
|
*/
|
|
public void setMargin(Insets margin)
|
|
{
|
|
if ((this.margin != null && margin == null)
|
|
|| (this.margin == null && margin != null)
|
|
|| (margin != null && this.margin != null
|
|
&& (margin.left != this.margin.left
|
|
|| margin.right != this.margin.right || margin.top != this.margin.top
|
|
|| margin.bottom != this.margin.bottom)))
|
|
{
|
|
Insets oldMargin = this.margin;
|
|
this.margin = margin;
|
|
firePropertyChange("margin", oldMargin, this.margin);
|
|
revalidate();
|
|
repaint();
|
|
}
|
|
} // setMargin()
|
|
|
|
/**
|
|
* This method returns the borderPainted property.
|
|
*
|
|
* @return The borderPainted property.
|
|
*/
|
|
public boolean isBorderPainted()
|
|
{
|
|
return paintBorder;
|
|
} // isBorderPainted()
|
|
|
|
/**
|
|
* This method sets the borderPainted property. If set to false, the border
|
|
* will not be painted.
|
|
*
|
|
* @param painted Whether the border will be painted.
|
|
*/
|
|
public void setBorderPainted(boolean painted)
|
|
{
|
|
if (painted != paintBorder)
|
|
{
|
|
paintBorder = painted;
|
|
firePropertyChange("borderPainted", ! paintBorder,
|
|
paintBorder);
|
|
repaint();
|
|
}
|
|
} // setBorderPainted()
|
|
|
|
/**
|
|
* This method returns the floatable property.
|
|
*
|
|
* @return The floatable property.
|
|
*/
|
|
public boolean isFloatable()
|
|
{
|
|
return floatable;
|
|
} // isFloatable()
|
|
|
|
/**
|
|
* This method sets the floatable property. If set to false, the JToolBar
|
|
* cannot be dragged.
|
|
*
|
|
* @param floatable Whether the JToolBar can be dragged.
|
|
*/
|
|
public void setFloatable(boolean floatable)
|
|
{
|
|
if (floatable != this.floatable)
|
|
{
|
|
this.floatable = floatable;
|
|
firePropertyChange("floatable", ! floatable, floatable);
|
|
}
|
|
} // setFloatable()
|
|
|
|
/**
|
|
* This method returns the orientation of the JToolBar.
|
|
*
|
|
* @return The orientation of the JToolBar.
|
|
*/
|
|
public int getOrientation()
|
|
{
|
|
return orientation;
|
|
} // getOrientation()
|
|
|
|
/**
|
|
* This method sets the layout manager to be used with the JToolBar.
|
|
*
|
|
* @param mgr The Layout Manager used with the JToolBar.
|
|
*/
|
|
public void setLayout(LayoutManager mgr)
|
|
{
|
|
super.setLayout(mgr);
|
|
revalidate();
|
|
repaint();
|
|
} // setLayout()
|
|
|
|
/**
|
|
* This method sets the orientation property for JToolBar.
|
|
*
|
|
* @param orientation The new orientation for JToolBar.
|
|
*
|
|
* @throws IllegalArgumentException If the orientation is not HORIZONTAL or
|
|
* VERTICAL.
|
|
*/
|
|
public void setOrientation(int orientation)
|
|
{
|
|
if (orientation != HORIZONTAL && orientation != VERTICAL)
|
|
throw new IllegalArgumentException(orientation
|
|
+ " is not a legal orientation");
|
|
if (orientation != this.orientation)
|
|
{
|
|
int oldOrientation = this.orientation;
|
|
this.orientation = orientation;
|
|
firePropertyChange("orientation", oldOrientation, this.orientation);
|
|
revalidate();
|
|
repaint();
|
|
}
|
|
} // setOrientation()
|
|
|
|
/**
|
|
* This method adds a Separator of default size to the JToolBar.
|
|
*/
|
|
public void addSeparator()
|
|
{
|
|
add(new Separator());
|
|
} // addSeparator()
|
|
|
|
/**
|
|
* This method adds a Separator with the given size to the JToolBar.
|
|
*
|
|
* @param size The size of the Separator.
|
|
*/
|
|
public void addSeparator(Dimension size)
|
|
{
|
|
add(new Separator(size));
|
|
} // addSeparator()
|
|
|
|
/**
|
|
* This method is used to create JButtons which can be added to the JToolBar
|
|
* for the given action.
|
|
*
|
|
* @param action The action to create a JButton for.
|
|
*
|
|
* @return The JButton created from the action.
|
|
*/
|
|
protected JButton createActionComponent(Action action)
|
|
{
|
|
return new JButton(action);
|
|
} // createActionComponent()
|
|
|
|
/**
|
|
* This method creates a pre-configured PropertyChangeListener which updates
|
|
* the control as changes are made to the Action. However, this is no
|
|
* longer the recommended way of adding Actions to Containers. As such,
|
|
* this method returns null.
|
|
*
|
|
* @param button The JButton to configure a PropertyChangeListener for.
|
|
*
|
|
* @return null.
|
|
*/
|
|
protected PropertyChangeListener createActionChangeListener(JButton button)
|
|
{
|
|
// XXX: As specified, this returns null. But seems kind of strange, usually deprecated methods don't just return null, verify!
|
|
return null;
|
|
} // createActionChangeListener()
|
|
|
|
/**
|
|
* This method overrides Container's addImpl method. If a JButton is added,
|
|
* it is disabled.
|
|
*
|
|
* @param component The Component to add.
|
|
* @param constraints The Constraints placed on the component.
|
|
* @param index The index to place the Component at.
|
|
*/
|
|
protected void addImpl(Component component, Object constraints, int index)
|
|
{
|
|
// XXX: Sun says disable button but test cases show otherwise.
|
|
super.addImpl(component, constraints, index);
|
|
|
|
// if we added a Swing Button then adjust this a little
|
|
if (component instanceof AbstractButton)
|
|
{
|
|
AbstractButton b = (AbstractButton) component;
|
|
b.setRolloverEnabled(rollover);
|
|
}
|
|
|
|
} // addImpl()
|
|
|
|
/**
|
|
* Returns a string describing the attributes for the <code>JToolBar</code>
|
|
* component, for use in debugging. The return value is guaranteed to be
|
|
* non-<code>null</code>, but the format of the string may vary between
|
|
* implementations.
|
|
*
|
|
* @return A string describing the attributes of the <code>JToolBar</code>.
|
|
*/
|
|
protected String paramString()
|
|
{
|
|
CPStringBuilder sb = new CPStringBuilder(super.paramString());
|
|
sb.append(",floatable=").append(floatable);
|
|
sb.append(",margin=");
|
|
if (margin != null)
|
|
sb.append(margin);
|
|
sb.append(",orientation=");
|
|
if (orientation == HORIZONTAL)
|
|
sb.append("HORIZONTAL");
|
|
else
|
|
sb.append(VERTICAL);
|
|
sb.append(",paintBorder=").append(paintBorder);
|
|
return sb.toString();
|
|
}
|
|
|
|
/**
|
|
* Returns the object that provides accessibility features for this
|
|
* <code>JToolBar</code> component.
|
|
*
|
|
* @return The accessible context (an instance of {@link AccessibleJToolBar}).
|
|
*/
|
|
public AccessibleContext getAccessibleContext()
|
|
{
|
|
if (accessibleContext == null)
|
|
accessibleContext = new AccessibleJToolBar();
|
|
|
|
return accessibleContext;
|
|
}
|
|
}
|