Swing工具栏(JToolBar)的使用

工具栏是程序中常见的一种组件,比如Word和Excel工作区上方的工具栏。Java Swing也有工具栏组件:JToolBar,今天我们就来学习和回顾一下工具栏的使用

一、构造方法

常用的构造方法如下:

  1. 构造方法1: JToolBar()创建新的工具栏,默认的方向为 HORIZONTAL(水平)
  2. 构造方法2: JToolBar(int orientation)创建具有指定 orientation 的新工具栏
  3. 构造方法3: JToolBar(String name)创建一个具有指定 name 的新工具栏
  4. 构造方法4: JToolBar(String name,int orientation)创建一个具有指定 name 和
    orientation 的新工具栏

二、常用方法

在这里插入图片描述

三、实例

  1. 创建JFrame容器,设置容器的名称,容器的内容窗格:Demo27_JToolBar

在这里插入图片描述

  1. 内容窗格Demo27_JToolBar目前还是空的,接下来我们把它填满
    Demo27_JToolBar是我们自定义的一个类,它继承JPanel,并且实现ActionListener接口
    在这里插入图片描述
    在这里插入图片描述
  2. 完成之后的效果如下: 点击工具栏上的按钮,会在下方显示对应的内容
    在这里插入图片描述
    4、代码如下:
package swing;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
/**
 *  工具栏 JToolBar
 */
public class Demo27_JToolBar 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"; 
    public static void main(String[] args){
        JFrame.setDefaultLookAndFeelDecorated(true);
        //定义窗体
        JFrame frame=new JFrame("工具栏");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //定义面板
        Demo27_JToolBar demo27_JToolBar=new Demo27_JToolBar();
        demo27_JToolBar.setOpaque(true);
        frame.setContentPane(demo27_JToolBar);
        SwingUtils.setCenter(frame);//设置窗体大小600*800并居中
        //显示窗体
        frame.setVisible(true);
    }
  //事件监听器部分的代码省略,请查阅源文件
    private void displayResult(String actionDescription){
        textArea.append(actionDescription+newline);
    }
    public Demo27_JToolBar() {
    	super(new BorderLayout());
        //创建工具栏
        JToolBar toolBar=new JToolBar();
        addButtons(toolBar);
        //创建一个文本域,用来输出一些信息
        textArea=new JTextArea(15, 30);
        textArea.setEditable(false);
        textArea.setFont(new Font("宋体", 1, 20));
        JScrollPane scrollPane=new JScrollPane(textArea);
        //把组件添加到面板中
        setPreferredSize(new Dimension(450, 110));
        add(toolBar,BorderLayout.PAGE_START);
        add(scrollPane,BorderLayout.CENTER);
    }
    private void addButtons(JToolBar toolBar) {
    	JButton button=null;
        button=makeNavigationButton("NEW",NEW,"新建一个文件","新建");
        toolBar.add(button);
        button=makeNavigationButton("OPEN",OPEN,"打开一个文件","打开");
        toolBar.add(button);
        button=makeNavigationButton("SAVE",SAVE,"保存当前文件","保存");
        toolBar.add(button);
	}
    private JButton makeNavigationButton(String imageName,String actionCommand,String toolTipText,String altText){
        //搜索图片
        String imgLocation=imageName+".png";
        ImageIcon icon = new ImageIcon(imgLocation);
        //初始化工具按钮
        JButton button=new JButton();
        //设置按钮的命令
        button.setActionCommand(actionCommand);
        //设置提示信息
        button.setToolTipText(toolTipText);
        button.addActionListener(this);
        button.setIcon(icon);
        return button;
    }
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().contentEquals("NEW")) {
			displayResult("新建一个文件");
		}else if(e.getActionCommand().contentEquals("OPEN")) {
			displayResult("打开一个文件");
		}else if(e.getActionCommand().contentEquals("SAVE")) {
			displayResult("保存文件");
		}
	}
}
package swing;

import java.awt.Toolkit;

import javax.swing.JFrame;

public class SwingUtils {
	public static void setCenter(JFrame jf) {
		int screenWidth=Toolkit.getDefaultToolkit().getScreenSize().width;
		int screenHeight=Toolkit.getDefaultToolkit().getScreenSize().height; 
		int jframeWidth = 800;
		int jframeHeight = 600;
		jf.setBounds((screenWidth/2)-(jframeWidth/2), (screenHeight/2)-(jframeHeight/2), 
        		jframeWidth, jframeHeight);
	}
}
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值