JToolBar控件

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 个按钮的工具栏。当鼠标指针放在工具按钮上时出现提示信息,如下图所示。

JToolBarResult

相关内容

JFrame 控件

JPanel 控件

JLabel 控件

JTextField 控件

JTextArea 控件

JButton 控件

JRadioButton 控件

JCheckBox 控件

JComboBox 控件

JTable 控件

JList 控件

JTree 控件