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);

    }
}

猜你喜欢

转载自blog.csdn.net/gaoqiandr/article/details/128696644