• P19 JToolBar工具栏


    P19 JToolBar工具栏

    系统:Win10
    Java:1.8.0_333
    IDEA:2020.3.4
    Gitee:https://gitee.com/lijinjiang01/JavaSwing

    1.概述

    JToolBar:工具栏,提供了一个用来显示常用控件的容器组件。
    对于大多数的外观,用户可以将工具栏拖到其父容器四“边”中的一边,并支持在单独的窗口中浮动显示。为了正确执行拖动,建议将 JToolBar 实例添加到容器四“边”中的一边(其中容器的布局管理器为 BorderLayout),并且不在其他四“边”中添加任何子级。
    JToolBar 常用构造方法:

    /**
     * 参数说明:
     *     name: 
     *         工具栏名称,悬浮显示时为悬浮窗口的标题。
     *
     *     orientation: 
     *         工具栏的方向,值为 SwingConstants.HORIZONTAL 或 SwingConstants.VERTICAL,
     *         默认为 HORIZONTAL。
     */
    JToolBar()
    
    JToolBar(String name)
    
    JToolBar(int orientation)
    
    JToolBar(String name, int orientation)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    JToolBar 常用方法:

    // 添加 工具组件 到 工具栏
    Component add(Component comp)
    
    // 添加 分隔符组件 到 工具栏
    void addSeparator()
    void addSeparator(Dimension size)
    
    // 获取工具栏中指定位置的组件(包括分隔符)
    Component getComponentAtIndex(int index)
    
    // 设置工具栏是否可拖动
    void setFloatable(boolean b)
    
    // 设置工具栏方向,值为 wingConstants.HORIZONTAL 或 SwingConstants.VERTICAL
    void setOrientation(int o)
    
    // 设置工具栏边缘和其内部工具组件之间的边距(内边距)
    void setMargin(Insets m)
    
    // 是否需要绘制边框
    void setBorderPainted(boolean b)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2.代码实例

    import com.lijinjiang.beautyeye.BeautyEyeLNFHelper;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    public class Demo01 {
        private static boolean play = false;
    
        public static void main(String[] args) {
            try {
                BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
                BeautyEyeLNFHelper.launchBeautyEyeLNF();
            } catch (Exception e) {
                e.printStackTrace();
            }
            JFrame frame = new JFrame("Demo01");
            frame.setSize(400, 300);
    
            // 创建 内容面板,使用 边界布局
            JPanel panel = new JPanel(new BorderLayout());
    
            // 创建 一个工具栏实例
            JToolBar toolBar = new JToolBar("Operate");
            toolBar.setFloatable(false); // 设置不可拖动
    
            ImageIcon pauseIcon = new ImageIcon("P19_JToolBar/images/pause.png");
            ImageIcon playIcon = new ImageIcon("P19_JToolBar/images/play.png");
            // 创建 工具栏按钮
            JButton previousBtn = new JButton(new ImageIcon("P19_JToolBar/images/previous.png"));
            previousBtn.setFocusable(false);
            JButton playBtn = new JButton(pauseIcon);
            playBtn.setFocusable(false);
            JButton nextBtn = new JButton(new ImageIcon("P19_JToolBar/images/next.png"));
            nextBtn.setFocusable(false);
    
            // 添加 按钮 到 工具栏
            toolBar.add(previousBtn);
            toolBar.add(playBtn);
            toolBar.add(nextBtn);
    
            // 创建一个文本区域,用于输出相关信息
            final JTextArea textArea = new JTextArea();
            textArea.setLineWrap(true);
            textArea.setEditable(false);
    
            // 添加 按钮 的点击动作监听器,并把相关信息输入到 文本区域
            previousBtn.addActionListener(e -> textArea.append("上一曲\n"));
            playBtn.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    if (play) {
                        textArea.append("暂停\n");
                        playBtn.setIcon(pauseIcon);
                        play = false;
                    } else {
                        textArea.append("播放\n");
                        playBtn.setIcon(playIcon);
                        play = true;
                    }
                }
            });
            nextBtn.addActionListener(e -> textArea.append("下一曲\n"));
    
            // 添加 工具栏 到 内容面板 的 底部
            panel.add(toolBar, BorderLayout.PAGE_END);
            // 添加 文本区域 到 内容面板 的 中间
            panel.add(textArea, BorderLayout.CENTER);
    
            frame.setContentPane(panel);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75

    3.效果演示

    在这里插入图片描述

  • 相关阅读:
    Mybatis二级缓存详解
    仅用Python三行代码,实现数据库和Excel之间的导入导出
    【算法刷题-栈与队列篇】
    Oracle考证对我们有什么帮助?
    跟菜鸟教程快速搭建并简单使用Vue
    kafka知识笔记
    【手把手教你写服务器】监听端口功能的实现、epoll技术概述
    web网页设计期末课程大作业:水果网站设计——HTML+CSS+JavaScript水果超市(带论文)
    【前端系列】pnpm 与 npm:现代 JavaScript 包管理工具的比较
    Express框架概述
  • 原文地址:https://blog.csdn.net/qq_35132089/article/details/126844862