Java Swing 工具栏


Swing 工具栏

  • 工具栏可以提供快速执行常用命令的按钮,可以将它随意拖曳到窗体的四周任何位置,甚至脱离窗体,在这种情况下,当关闭工具栏时它会自动恢复到脱离窗体之前的默认位置;
  • 如果希望工具栏可以随意拖动,窗体一定要采用默认的边界布局方式,并且不能在边界布局的四周添加任何组件。工具栏默认都是可以随意移动的,如果不希望它能随意拖动,则可以通过调用方法 setFloatable(boolean b) 来设定,将参数设定为 true 表示允许随意拖动,而设定为 false 则表示不允许随意拖动;
  • 创建工具栏需要使用 JToolBar 类,可以通过调用其无参构造方法 JToolBar() 来创建实例,当工具栏脱离了窗体时,工具栏窗体没有标题。如果希望工具栏有标题,则可以调用有参构造方法 JToolBar(String name)来创建具有指定标题的工具栏,javax.swing.JToolBar,详见:Class JToolBar
  • 可以使用方法 add(Component cp)将组件添加到工具栏的末尾,同时还可以利用 addSeparator() 方法在组件之间添加默认大小的分隔符, 也可以使用 addSeparator(Dimension size)方法添加指定大小的分隔符;

1. 应用:创建工具栏

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test extends JFrame {
    public static void main(String args[]) {
        Test frame = new Test();
        frame.setVisible(true);
    }

    public Test() {
        super();
        setTitle("Regino");
        setBounds(100, 100, 500, 375);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        final JToolBar toolBar = new JToolBar("工具栏");// 创建工具栏对象
        toolBar.setFloatable(false);// 设置为不允许拖动
        getContentPane().add(toolBar, BorderLayout.NORTH);// 添加到网格布局的上方
        final JButton newButton = new JButton("新建");// 创建按钮对象
        newButton.addActionListener(new ButtonListener());// 添加动作事件监听器
        toolBar.add(newButton);// 添加到工具栏中
        toolBar.addSeparator();// 添加默认大小的分隔符
        final JButton saveButton = new JButton("保存");// 创建按钮对象
        saveButton.addActionListener(new ButtonListener());// 添加动作事件监听器
        toolBar.add(saveButton);// 添加到工具栏中
        toolBar.addSeparator(new Dimension(20, 0));// 添加指定大小的分隔符
        final JButton exitButton = new JButton("退出");// 创建按钮对象
        exitButton.addActionListener(new ButtonListener());// 添加动作事件监听器
        toolBar.add(exitButton);// 添加到工具栏中
    }

    private class ButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            JButton button = (JButton) e.getSource();
            System.out.println("您单击的是:" + button.getText());
        }
    }
}
  • 效果图:
    1
发布了269 篇原创文章 · 获赞 270 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Regino/article/details/104909208