QHYun_practice-12

虽然现在菜单栏和工作栏还没有什么功能,不过还是初始化一下把,放在上面装装样子,后面需要通过他们实现一些功能的时候再来实现吧。

因为工具栏可能会用到combobox和button这些控件实现,所以我们去建一个tool的包,实现一些这些可能用到的组件。其实就是继承后重写了一下样式,然后写了一下响应时间,如果不嫌难看,用自带的也是可以的。

因为暂时也没设计这部分的功能,所以随便写写吧。

 /**
     * 初始化菜单
     */
    private void initMenu()
    {
        JMenuBar menuBar = new JMenuBar(); // 创建一个菜单栏
        JMenu fileMenu = new JMenu("文件"); // 创建一级菜单
        JMenu editMenu = new JMenu("编辑"); // 创建一级菜单
        JMenu viewMenu = new JMenu("视图"); // 创建一级菜单
        JMenu helpMenu = new JMenu("帮助"); // 创建一级菜单
 
        // 文件菜单
        JMenuItem newMenuItem = new JMenuItem("新建"); // 创建一级子菜单
        JMenuItem openMenuItem = new JMenuItem("打开");
        JMenuItem exitMenuItem = new JMenuItem("退出");
        fileMenu.add(newMenuItem);
        fileMenu.add(openMenuItem);
        fileMenu.addSeparator();
        fileMenu.add(exitMenuItem);
 
        // 编辑菜单
        JMenuItem copyMenuItem = new JMenuItem("复制");
        JMenuItem pasteMenuItem = new JMenuItem("粘贴");
        editMenu.add(copyMenuItem);
        editMenu.add(pasteMenuItem);
 
        // 视图菜单
        JCheckBoxMenuItem checkBoxMenuItem01 = new JCheckBoxMenuItem("复选框子菜单01");
        JCheckBoxMenuItem checkBoxMenuItem02 = new JCheckBoxMenuItem("复选框子菜单02");
        JCheckBoxMenuItem checkBoxMenuItem03 = new JCheckBoxMenuItem("复选框子菜单03");
        JRadioButtonMenuItem radioButtonMenuItem01 = new JRadioButtonMenuItem("单选按钮子菜单01");
        JRadioButtonMenuItem radioButtonMenuItem02 = new JRadioButtonMenuItem("单选按钮子菜单02");
        JRadioButtonMenuItem radioButtonMenuItem03 = new JRadioButtonMenuItem("单选按钮子菜单03");
        ButtonGroup buttonGroup = new ButtonGroup(); // 单选按钮要生效,需要放到一个按钮组中
        buttonGroup.add(radioButtonMenuItem01);
        buttonGroup.add(radioButtonMenuItem02);
        buttonGroup.add(radioButtonMenuItem03);
        viewMenu.add(checkBoxMenuItem01);
        viewMenu.add(checkBoxMenuItem02);
        viewMenu.add(checkBoxMenuItem03);
        viewMenu.addSeparator();
        viewMenu.add(radioButtonMenuItem01);
        viewMenu.add(radioButtonMenuItem02);
        viewMenu.add(radioButtonMenuItem03);
 
        // 新建 子菜单添加监听器
        newMenuItem.addActionListener(e -> {
            System.out.println("点击新建按钮");
        });
        // 退出 子菜单添加监听器
        exitMenuItem.addActionListener(e -> {
            System.exit(0);
        });
        // 复选框子菜单01 添加监听
        checkBoxMenuItem01.addActionListener(e -> {
            System.out.println("复选框子菜单01是否被选中:" + checkBoxMenuItem01.isSelected());
        });
        // 单选按钮子菜单01 添加监听
        radioButtonMenuItem01.addActionListener(e -> {
            System.out.println("复选框子菜单01是否被选中:" + radioButtonMenuItem01.isSelected());
        });
 
        // 关于菜单
        JMenuItem aboutMenuItem = new JMenuItem("关于");
        helpMenu.add(aboutMenuItem);
 
        menuBar.add(fileMenu);
        menuBar.add(editMenu);
        menuBar.add(viewMenu);
        menuBar.add(helpMenu);
 
        this.setJMenuBar(menuBar); // 设置菜单栏
 
 
    }
    /**
     *  增加工具栏
     */
    JPanel toolbar_panel=null;
    JToolBar toolBar=null;
    private void initToolbar()
    {
        JPanel panel = new JPanel(new BorderLayout());
        add(panel);
        this.setContentPane(panel);
        toolbar_panel=panel;
        // 创建 一个工具栏实例
        toolBar = new JToolBar("测试工具栏");
        add(toolBar);
        // 添加 工具栏 到 内容面板 的 顶部
        panel.add(toolBar,BorderLayout.PAGE_START);
        toolBar.setFloatable(false);
        updateToolbar();
    }
    /**
     * 更新工具栏
     */
    public void updateToolbar()
    {
        toolBar.removeAll();
        // 创建 工具栏按钮
        ToolBarComboBox cb = new ToolBarComboBox(this,100);
        cb.setToolTipText("选择");
        cb.setFocusTraversalKeysEnabled(false);
        toolBar.add(cb);
 
        ToolBarButton tb = new ToolBarButton(this,true);
        tb.setIcon(new ImageIcon(SAbsolutePathHelper.getImagePath()+ File.separator
                +"ButtonIcon" +File.separator +"File.png"));
        tb.setToolTipText("文件");
        toolBar.add(tb);
        toolBar.updateUI();
    }

 

posted @ 2025-07-21 09:34  Wind_Swing_Dunn  阅读(4)  评论(0)    收藏  举报