首页 > Java Swing
Java Swing JToolBar:工具栏组件
工具栏提供了一个用来显示常用按钮和操作的组件。它可以把任意类型的组件附加到工具条上,但是通常是增加按钮。工具栏 JToolBar 类的常用构造方法如表 1 所示。
与 JMenuBar 不一样,JToolBar 对象可以直接被添加到容器中。JTodBar 类的常用方法如表 2 所示。
(1) 创建一个 ToolBarDemo 类,继承 JPanel 父类并实现 ActionListener 接口。
(2) 在构造方法中对工具栏进行设置,主要代码如下所示。
(3) 构造方法中创建了一个工具栏 toolBar,然后调用 addButtons() 方法为工具栏设置按钮。addButtons() 方法的代码如下:
(4) 在 addButtons() 方法中调用 makeNavigationButton() 方法,实现对工具栏上的按钮指定图片、动作指令、提示信息和无图片时的文本。具体实现代码如下:
(5) 运行程序,在窗口的顶部会看到包含 3 个按钮的工具栏。当鼠标指针放在工具按钮上时出现提示信息,如图 1 所示。
图1 无图片工具栏
构造方法 | 说明 |
---|---|
JToolBar() | 创建新的工具栏,默认的方向为 HORIZONTAL |
JToolBar(int orientation) | 创建具有指定 orientation 的新工具栏 |
JToolBar(String name) | 创建一个具有指定 name 的新工具栏 |
JToolBar(String name,int orientation) | 创建一个具有指定 name 和 orientation 的新工具栏 |
与 JMenuBar 不一样,JToolBar 对象可以直接被添加到容器中。JTodBar 类的常用方法如表 2 所示。
方法名称 | 说明 |
---|---|
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 状态 |
例 1
下面通过实例来说明如何使用 JToolBar 创建工具栏,在该实例中给工具栏上的按钮添加了图片,当图片不存在时使用文字代替。主要实现步骤如下所示。(1) 创建一个 ToolBarDemo 类,继承 JPanel 父类并实现 ActionListener 接口。
package ch18; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JToolBar; public class ToolBarDemo extends JPanel implements ActionListener { protected JTextArea textArea; protected String newline="\n"; static final private String OPEN="OPEN"; static final private String SAVE="SAVE"; static final private String NEW="NEW"; //事件监听器部分的代码省略,请查阅源文件 protected void displayResult(String actionDescription) { textArea.append(actionDescription+newline); } public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); //定义窗体 JFrame frame=new JFrame("工具栏"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //定义面板 ToolBarDemo newContentPane=new ToolBarDemo(); newContentPane.setOpaque(true); frame.setContentPane(newContentPane); //显示窗体 frame.pack(); frame.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { // TODO 自动生成的方法存根 } }
(2) 在构造方法中对工具栏进行设置,主要代码如下所示。
public ToolBarDemo() { 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); }
(3) 构造方法中创建了一个工具栏 toolBar,然后调用 addButtons() 方法为工具栏设置按钮。addButtons() 方法的代码如下:
protected void addButtons(JToolBar toolBar) { JButton button=null; button=makeNavigationButton("new1",NEW,"新建一个文件","新建"); toolBar.add(button); button=makeNavigationButton("open1",OPEN,"打开一个文件","打开"); toolBar.add(button); button=makeNavigationButton("save1",SAVE,"保存当前文件","保存"); toolBar.add(button); }
(4) 在 addButtons() 方法中调用 makeNavigationButton() 方法,实现对工具栏上的按钮指定图片、动作指令、提示信息和无图片时的文本。具体实现代码如下:
protected JButton makeNavigationButton(String imageName,String actionCommand,String toolTipText,String altText) { //搜索图片 String imgLocation=imageName+".jpg"; URL imageURL=ToolBarDemo.class.getResource(imgLocation); //初始化工具按钮 JButton button=new JButton(); //设置按钮的命令 button.setActionCommand(actionCommand); //设置提示信息 button.setToolTipText(toolTipText); button.addActionListener(this); if(imageURL!=null) { //找到图像 button.setIcon(new ImageIcon(imageURL)); } else { //没有图像 button.setText(altText); System.err.println("Resource not found: "+imgLocation); } return button; }
(5) 运行程序,在窗口的顶部会看到包含 3 个按钮的工具栏。当鼠标指针放在工具按钮上时出现提示信息,如图 1 所示。
图1 无图片工具栏
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算