首页 > 社交 > 科普中国

JavaGUI

常驻编辑 科普中国 2022-06-24 刻度   对话框   用户界面   组件   布局   按钮   选项   面板   图形   文本   窗口   文件

添加菜单被点击的监听器tIS拜客生活常识网

JMenuItemtIS拜客生活常识网

void setActionCommand(String actionCommand)tIS拜客生活常识网

可以再监听器回调时通过命令名称区别是哪个菜单项触发的动作。tIS拜客生活常识网

JMenutIS拜客生活常识网

JMenuItem add(JMenuItem menuItem)tIS拜客生活常识网

添加子菜单到JMenu中tIS拜客生活常识网

JMenutIS拜客生活常识网

void addSeparator()tIS拜客生活常识网

添加一个子菜单分割线tIS拜客生活常识网

class JMenuBarUse{
    public JMenuBarUse() {
        JFrame jFrame = new JFrame();
        JPanel jPanel = new JPanel();

        // 创建一个菜单栏
        JMenuBar jMenuBar = new JMenuBar();
        
        // 创建一级菜单
        JMenu fileMenu = new JMenu("文件");
        JMenu editMenu = new JMenu("编辑");
        // 将一级菜单添加到菜单栏
        jMenuBar.add(fileMenu);
        jMenuBar.add(editMenu);
        
        // 创建文件菜单的子菜单
        JMenuItem openMenuItem  = new JMenuItem("打开");
        JMenuItem newMenuItem  = new JMenuItem("新建");
        fileMenu.add(newMenuItem);
        fileMenu.add(openMenuItem);

        jPanel.add(jMenuBar);
        // 省略公共代码
    }
}

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

方法tIS拜客生活常识网

功能tIS拜客生活常识网

JToolBar(String name, int orientation)tIS拜客生活常识网

name: 工具栏名称,悬浮显示时为悬浮窗口的标题。orientation: 工具栏方向,默认水平tIS拜客生活常识网

Component add(Component comp)tIS拜客生活常识网

添加 工具组件 到 工具栏tIS拜客生活常识网

void addSeparator(Dimension size)tIS拜客生活常识网

添加 分隔符组件 到 工具栏tIS拜客生活常识网

Component getComponentAtIndex(int index)tIS拜客生活常识网

获取工具栏中指定位置的组件(包括分隔符)tIS拜客生活常识网

void setFloatable(boolean b)tIS拜客生活常识网

设置工具栏是否可拖动tIS拜客生活常识网

void setOrientation(int o)tIS拜客生活常识网

设置工具栏方向,值为 SwingConstants.HORIZONTAL 或 SwingConstants.VERTICALtIS拜客生活常识网

void setMargin(Insets m)tIS拜客生活常识网

设置工具栏边缘和其内部工具组件之间的边距(内边距)tIS拜客生活常识网

void setBorderPainted(boolean b)tIS拜客生活常识网

是否需要绘制边框tIS拜客生活常识网

class JToolBarUse{
    public JToolBarUse() {
        JFrame jFrame = new JFrame();
        JPanel jPanel = new JPanel();

        // 创建一个工具栏
        JToolBar jToolBar = new JToolBar("测试工具栏");
        JButton jButton = new JButton("按钮");
        jToolBar.add(jButton);

        jPanel.add(jToolBar);
        // 省略公共代码
    }
}



tIS拜客生活常识网

5、事件

5.1、鼠标监听事件

class MouseListenerUse {
    public MouseListenerUse() {
        JFrame jFrame = new JFrame("鼠标监听");
        JPanel jPanel = new JPanel();

        /**
         * 鼠标监听器
         */
        jPanel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseEntered(MouseEvent e) {
                System.out.println("鼠标进入组件区域");
            }

            @Override
            public void mouseExited(MouseEvent e) {
                System.out.println("鼠标离开组建区域");
            }

            @Override
            public void mousePressed(MouseEvent e) {
                // 获取按下的坐标(相对于组件)
                System.out.println("相对组件" + e.getPoint() + ",横坐标:" + e.getX() + ", 纵坐标:" + e.getY());
                // 获取按下的坐标(相对于屏幕)
                System.out.println("相对屏幕" + e.getLocationOnScreen() + ",横坐标:" + e.getXOnScreen() + ", 纵坐标:" + e.getYOnScreen());
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                System.out.println("鼠标释放");
            }

            @Override
            public void mouseClicked(MouseEvent e) {
                // 鼠标在组件区域内按下并释放(中间没有移动光标)才识别为被点击
                System.out.println("鼠标点击");
            }
        });

        /**
         * 鼠标移动/拖动监听器
         */
        jPanel.addMouseMotionListener(new MouseMotionAdapter() {
            @Override
            public void mouseDragged(MouseEvent e) {
                // 鼠标保持按下状态移动即为拖动
                System.out.println("鼠标拖动");
            }
            @Override
            public void mouseMoved(MouseEvent e) {
                System.out.println("鼠标移动");
            }
        });


        /**
         * 鼠标滚轮监听器
         */
        jPanel.addMouseWheelListener(new MouseWheelListener() {
            @Override
            public void mouseWheelMoved(MouseWheelEvent e) {
                // e.getWheelRotation() 为滚轮滚动多少的度量
                System.out.println("mouseWheelMoved: " + e.getWheelRotation());
            }
        });

       // 省略公共代码
    }
}
    

相关阅读:

  • 关于温度的知识
  • 又是一年“618”,生鲜电商静悄悄?
  • matplotlib
  • 家乡异地皆乐趣:浪琴Spirit
  • 崩溃的瞬间
  • 好物分享:适合上班族秋天佩戴的平价手表
  • 裁员在路上,谷歌告别好日子?
  • 欧米茄推出全新
  • 万宝龙1858系列两地时腕表“中国特别款”开箱短评「最
  • 看到这款表是“真的酸”
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。