JToolBar 类用于工具栏,工具栏提供了用于显示常用按钮和操作的组件,可以把任意类型的组件附加到工具条上,但是通常是增加按钮。
JToolBar 类常用构造方法如下:
- JToolBar():创建新的工具栏,默认的方向为 HORIZONTAL;
- JToolBar(int orientation):创建具有指定 orientation 的新工具栏;
- JToolBar(String name):创建一个具有指定 name 的新工具栏;
- JToolBar(String name,int orientation):创建一个具有指定 name 和 orientation 的新工具栏。
JToolBar 类的常用方法如下:
与 JMenuBar 不一样,JToolBar 对象可以直接被添加到容器中。JTodBar 类的常用方法如下:
方法名及返回值类型 | 说明 |
---|---|
add(Action a) | 添加一个指派动作的新的 JButton |
addSeparator() | 将默认大小的分隔符添加到工具栏的末尾 |
addSeparator(Dimension size) | 将指定大小的分隔符添加到工具栏的末尾 |
getComponentAtIndex(int i) | 返回指定索引位置的组件 |
getComponentIndex(Component c) | 返回指定组件的索引 |
getMargin() | 返回工具栏边框和它的按钮之间的空白 |
getOrientation() | 返回工具栏的当前方向 |
isFloatable() | 获取 floatable 属性 |
isRollover() | 返回 rollover 状态 |
setBorderPainted(boolean b) | 设置 borderPainted 属性,如果需要绘制边框,则此属性为 true |
setFloatable(boolean b) | 设置 floatable 属性,如果要移动工具栏,此属性必须设置为 true |
setLayout(LayoutManager mgr) | 设置此容器的布局管理器 |
setMargin(Insets m) | 设置工具栏边框和它的按钮之间的空白 |
setOrientation(int o) | 设置工具栏的方向 |
setRollover(boolean rollover) | 设置此工具栏的 rollover 状态 |
示例
下面通过实例来说明如何使用 JToolBar 创建工具栏,在该实例中给工具栏上的按钮添加了图片,当图片不存在时使用文字代替。主要实现步骤如下所示。
① 创建一个 ToolBarDemo 类,继承 JPanel 父类并实现 ActionListener 接口。
package com.supermap.desktop.samplecode.swing.toolbar;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToolBar;
public class JToolBarDemo extends JPanel implements ActionListener
{
public static void main(String[] args)
{
//定义窗体
JFrame frame=new JFrame("JToolBar工具栏示例");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//定义面板
JToolBarDemo newContentPane=new JToolBarDemo();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
//显示窗体
frame.pack();
frame.setVisible(true);
}
protected JTextArea textArea;
public void actionPerformed(ActionEvent e)
{
// TODO 自动生成的方法存根
}
public JToolBarDemo()
{
super(new BorderLayout());
//创建工具栏
JToolBar toolBar=new JToolBar();
addButtons(toolBar);
//创建一个文本域,用来输出一些信息
textArea=new JTextArea(15, 30);
textArea.setEditable(false);
JScrollPane scrollPane=new JScrollPane(textArea);
//把组件添加到面板中
setPreferredSize(new Dimension(450, 110));
add(toolBar,BorderLayout.PAGE_START);
add(scrollPane,BorderLayout.CENTER);
}
}
② 在构造方法中对工具栏进行设置,主要代码如下所示。
public JToolBarDemo()
{
super(new BorderLayout());
//创建工具栏
JToolBar toolBar=new JToolBar();
addButtons(toolBar);
//创建一个文本域,用来输出一些信息
textArea=new JTextArea(15, 30);
textArea.setEditable(false);
JScrollPane scrollPane=new JScrollPane(textArea);
//把组件添加到面板中
setPreferredSize(new Dimension(450, 110));
add(toolBar,BorderLayout.PAGE_START);
add(scrollPane,BorderLayout.CENTER);
}
③ 构造方法中创建了一个工具栏 toolBar,然后调用 addButtons() 方法为工具栏设置按钮。addButtons() 方法的代码如下:
protected void addButtons(JToolBar toolBar)
{
JButton button=null;
button= createButton("数据集的基本属性信息","数据集");
toolBar.add(button);
button= createButton("数据集坐标系","坐标系");
toolBar.add(button);
button= createButton("数据集属性表","属性表");
toolBar.add(button);
}
④ 在 addButtons() 方法中调用 makeNavigationButton() 方法,实现对工具栏上的提示信息和无图片时的文本。具体实现代码如下
protected JButton createButton( String toolTipText, String altText)
{
//初始化工具按钮
JButton button=new JButton();
button.addActionListener(e -> {
textArea.append(button.getToolTipText()+"\n");
});
//设置提示信息
button.setToolTipText(toolTipText);
button.addActionListener(this);
button.setText(altText);
return button;
}
⑤ 运行程序,在窗口的顶部会看到包含 3 个按钮的工具栏。当鼠标指针放在工具按钮上时出现提示信息,如下图所示。