概述
所有已實現的接口:ImageObserver, MenuContainer, Serializable, Accessible, SwingConstantspublic class JToolBarextends JComponentimplements SwingConstants, AccessibleJToolBar 提供了一個用來顯示常用的 Action 或控制項的組件。有關使用工具列的示例和信息,請參閱 The Java Tutorial 中的 How to Use Tool Bars 一節。 對於大多數的外觀,用戶可以將工具列拖到單獨的視窗中(除非 floatable 屬性被設定為 false)。為了正確執行拖動,建議將 JToolBar 實例添加到容器的四“邊”中的一邊(其中容器的布局管理器為 BorderLayout),並且不在其他四“邊”中添加任何子級。 警告:Swing 不是執行緒安全的。有關更多信息,請參閱 Swing's Threading Policy。 警告:此類的已序列化對象與以後的 Swing 版本不兼容。當前序列化支持適用於短期存儲,或適用於在運行相同 Swing 版本的應用程式之間進行 RMI(Remote Method Invocation,遠程方法調用)。從 1.4 版本開始,已在 java.beans 包中添加了支持所有 JavaBeans 長期存儲的功能。請參見 XMLEncoder。 另請參見:Action
嵌套類摘要
嵌套類摘要 | |
---|---|
protected class | JToolBar.AccessibleJToolBar 此類實現對 JToolBar 類的可訪問性支持。 |
static class | JToolBar.Separator 一個特定於工具列的分隔設定。 |
從類 javax.swing.JComponent繼承的嵌套類/接口 |
---|
JComponent.AccessibleJComponent |
從類 java.awt.Container繼承的嵌套類/接口 |
---|
Container.AccessibleAWTContainer |
從類 java.awt.Component繼承的嵌套類/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
欄位摘要
從類 javax.swing.JComponent繼承的欄位 |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
從類 java.awt.Component繼承的欄位 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
構造方法摘要
方法摘要
JButton | add(Action a) 添加一個指派動作的新的 JButton。 |
protected void | addImpl(Component comp, Object constraints, int index) 在添加 JButton 時,它最初被設定為 disabled。 |
void | addSeparator() 將默認大小的分隔設定添加到工具列的末尾。 |
void | addSeparator(Dimension size) 將指定大小的分隔設定添加到工具列的末尾。 |
protected PropertyChangeListener | createActionChangeListener(JButton b) 返回正確配置的 PropertyChangeListener,它根據 Action 的更改對控制項進行更新,如果需要使用默認的屬性更改偵聽器,則為 null。 |
protected JButton | createActionComponent(Action a) 將為 Action 創建 JButton 的工廠方法添加到 JToolBar 中。 |
AccessibleContext | getAccessibleContext() 獲取與此 JToolBar 關聯的 AccessibleContext。 |
Component | getComponentAtIndex(int i) 返回指定索引位置的組件。 |
int | getComponentIndex(Component c) 返回指定組件的索引。 |
Insets | getMargin() 返回工具列框線和它的按鈕之間的空白。 |
int | getOrientation() 返回工具列的當前方向。 |
ToolBarUI | getUI() 返回工具列的當前 UI。 |
String | getUIClassID() 返回呈現此組件的 L&F 類的名稱。 |
boolean | isBorderPainted() 獲取 borderPainted 屬性。 |
boolean | isFloatable() 獲取 floatable 屬性。 |
boolean | isRollover() 返回 rollover 狀態。 |
protected void | paintBorder(Graphics g) 如果 borderPainted 屬性為 true,則繪製工具列框線。 |
protected String | paramString() 返回此 JToolBar 的字元串表示形式。 |
void | setBorderPainted(boolean b) 設定 borderPainted 屬性,如果需要繪製框線,則此屬性為 true。 |
void | setFloatable(boolean b) 設定 floatable 屬性,如果要移動工具列,此屬性必須設定為 true。 |
void | setLayout(LayoutManager mgr) 設定此容器的布局管理器。 |
void | setMargin(Insets m) 設定工具列框線和它的按鈕之間的空白。 |
void | setOrientation(int o) 設定工具列的方向。 |
void | setRollover(boolean rollover) 設定此工具列的 rollover 狀態。 |
void | setUI(ToolBarUI ui) 設定呈現此組件的 L&F 對象。 |
void | updateUI() UIFactory 發出的關於 L&F 已更改的通知。 |
簡單用法
如果需要使用JToolBar,只需要通過上面提出的構造方法創建一個JToolBar對象。在默認情況下,工具列是以水平方向進行創建的。然而,我們可以通過JToolBar的常量HORIZONTAL與VERTICAL顯示指定方向。
而且在默認情況下,工具列是可以浮動的。所以,如果我們使用水平方向創建一個工具列,用戶可以在視窗周圍拖動工具列來改變工具列的方向。
一旦我們擁有一個JToolBar,我們需要向其中添加組件。任意的Component都可以添加到工具列。當處理水平工具列時,由於美觀的原因,如果工具列的組件是大致相同的高度時是最好的。對於垂直工具列,如果工具列組件具有大致相同的寬度則是最好的。JToolBar類只定義了一個方法用於添加工具列項目;其他的方法,例如add(Component)是由Container繼承而來的。另外,我們可以向工具列添加分隔設定。
public JButton add(Action action);
public void addSeparator();
public void addSeparator(Dimension size);
當使用JToolBar的add(Action)方法時,所添加的Action被封閉在一個JButton對象中。這與向JMenu或是JPopupMenu組件添加Action不同,在後一種情況中,所添加的是JMenuItem對象。對於JMenu與JPopupMenu,以這種方式添加Action是類的Javadoc中所不推薦的。對於分隔設定,如果我們沒有指定尺寸,所安裝的觀感會強制默認的尺寸設定。
由工具列移除組件可以使用下面的方法:
public void remove(Component component)