Java图形化界面---JToolBar用法

目录

一、JToolBar介绍

二、实例


一、JToolBar介绍

Swing提供了JToolBar类来创建工具类,并且可以往JToolBar中添加多个工具按钮。

方法:

JToolBar(String name,int orientation)   创建一个名字为name,方向是orientation的,可以是 
                                        SwingConstants.HORIZONTAL或SwingConstants.VERTICAL

JButton add(Action a)                  通过Action对象为JToolBar工具条添加对应的工具按钮

addSeparator(Dinmension size)          向工具条中添加指定大小的分隔符

setFloatable(boolean b)                设定工具条是否可以被拖动
setMargin()                            设置工具条与工具按钮的边距
setOrientation(int o)                  设置工具条的方向


上述API add(Action a)这个方法中的Action接口是ActionListener的一个子接口,那么它就代表一个事件监听器,而这里add()方法是在给工具条添加一个按钮,为什么传递的是一个事件监听器呢?
 首先要明确的是不管是菜单条中的菜单项还是工具条中的工具按钮,最终肯定是需要点击来完成一些操作,所以JToolBar以及JMenu都提供了更加便捷的添加子组件的方法add(Action a),在这个方法的内部会做如下几件事:
 1:创建一个适用于该容器的组件(例如在工具栏中创建一个工具按钮)
 2:从Action对象中获得对应的属性来设置该组件(通过Icon来设置按钮图标)
 3:把Action监听器注册到刚才创建的组件上。

 

二、实例

案列:制作如图所示的界面

 

 

public class exer1 {
      JFrame s=new JFrame("练习");
      JTextArea text=new JTextArea(10,40);
      JToolBar jToolBar=new JToolBar("播放工具条",SwingConstants.HORIZONTAL);

      //创建三个Action对象
    //传递参数:name和icon,对重在添加工具条中时会被拿出来作为按钮的名称和图标
      Action pre=new AbstractAction("上一曲",new ImageIcon("D:\\idea\\project\\pro1\\exercise1\\image\\pre.png")) {
          @Override
          public void actionPerformed(ActionEvent e) {
              text.append("上一曲\n");
          }
      };
      Action pause=new AbstractAction("暂停",new ImageIcon("D:\\idea\\project\\pro1\\exercise1\\image\\pause.png")) {
          @Override
          public void actionPerformed(ActionEvent e) {
              text.append("暂停\n");
          }
      };
      Action next=new AbstractAction("下一曲",new ImageIcon("D:\\idea\\project\\pro1\\exercise1\\image\\next.png")) {
          @Override
          public void actionPerformed(ActionEvent e) {
              text.append("下一曲\n");
          }
      };
    public void init(){
        JButton b1=new JButton(pre);
        JButton b2=new JButton(pause);
        JButton b3=new JButton(next);
        jToolBar.add(b1);
        //加分隔符
        jToolBar.addSeparator();
        jToolBar.add(b2);
        jToolBar.addSeparator();
        jToolBar.add(b3);
        s.add(jToolBar,BorderLayout.NORTH);
        s.add(text);
        s.setDefaultCloseOperation(3);
        s.pack();
        s.setVisible(true);

    }
}

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜到极致就是渣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值