zoukankan      html  css  js  c++  java
  • menu JPopupMenu JTabbedPane

    菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中.

    菜单组件由菜单栏 (MenuBar)、菜单(Menu)和菜单项(MenuItem)三部分组成。 一个菜单栏由若干个菜单组成,一个菜单又由若干个菜单项组成。一般菜单栏放 Frame 窗口中,只要调用 Frame 类的 setMenuBar()方法即可。

    常用的菜单有:下拉式菜单和弹出式菜单(独立显示,可出现在任意地方).

    一:下拉式菜单的创建步骤:

    1.创建一个菜单栏。 
    2.调用 Frame 的 setMenuBar()方法将菜单栏加入 Frame 中。 
    3.分别创建若干个 Menu 对象,并加入 MenuBar 中。 
    4.对于每个 Menu 对象,分别创建若干个 MenuItem 对象,并加入 Menu 中。

    实例:

    复制代码代码如下:

    import java.awt.*;  
      
    public class MenuDemo {  
      
        Frame f;  
        MenuBar mb;  
        Menu menuFile;  
        MenuItem mItemNew, mItemOpen, mItemSave;  
      
        MenuDemo() {  
            f = new Frame("我的菜单实例");  
            f.setBounds(300, 100, 400, 300);  
      
            mb = new MenuBar(); // 创建菜单栏MenuBar  
            menuFile = new Menu("文件");   
      
            mItemNew = new MenuItem("新建");  
            mItemOpen = new MenuItem("打开");  
              
            menuFile.add(mItemNew);  
            mItemSave = new MenuItem("保存");  
              
            menuFile.add(mItemOpen);  
            // 加入分割线  
            menuFile.addSeparator();  
                    menuFile.add(mItemSave);  
                    mb.add(menuFile);   
                    // 菜单栏中加入“文件”菜单  
       
    // setMenuBar:将此窗体的菜单栏设置为指定的菜单栏。  
                    f.setMenuBar(mb);   
                    f.setVisible(true);  
              }  
        public static void main(String[] args) {  
            new MenuDemo();  
      }  
    }

    有图有真相:(下拉的菜单项无法截图)

    二:弹出式菜单的创建步骤:

    1.先建立最基本的JFrame框架.

    2.创建右键弹出式菜单(JPopupMenu)和添加的菜单项(JMenuItem). 3.使用add方法和insert方法向JPopupMenu中添加或者插入. 4.通过调用弹出式菜单触发器对应的show方法来显示弹出式菜单,检查所有的MouseEvent事件,看其是否是弹出式菜单触发器,然后在合适的时候显示弹出式菜单

    实例:

    复制代码代码如下:

    import java.awt.event.*;  
    import javax.swing.*;  
      
    public class JPopMenu_Demo extends JFrame {  
      
        // 弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口  
        JPopupMenu popupMenu;   
      
        public JPopMenu_Demo() {  
            super("右键弹出式菜单"); // 调用父类构造函数  
            // 实例化弹出菜单   
            popupMenu = new JPopupMenu();   
            // 增加菜单项到菜单上  
            popupMenu.add(new JMenuItem("菜单项"));  
            popupMenu.add(new JButton("按钮"));   
            popupMenu.add(new JLabel("标签"));  
      
            myEvents();  
      
            setSize(350, 300); // 设置窗口大小  
            setLocation(400, 200);  
            setVisible(true); // 设置窗口为可视  
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭窗口时退出程序  
        }  
      
        private void myEvents() {  
            // 窗口的鼠标事件处理  
            addMouseListener(new MouseAdapter() {   
                // 点击鼠标  
                public void mousePressed(MouseEvent event) {   
                    // 调用triggerEvent方法处理事件  
                    triggerEvent(event);   
                }  
                // 释放鼠标  
                public void mouseReleased(MouseEvent event) {   
                    triggerEvent(event);  
                }  
      
                private void triggerEvent(MouseEvent event) { // 处理事件  
                    // isPopupTrigger():返回此鼠标事件是否为该平台的弹出菜单触发事件。  
                    if (event.isPopupTrigger())   
                        // 显示菜单  
                        popupMenu.show(event.getComponent(), event.getX(),  
                                event.getY());   
                }  
            });  
        }  
      
        public static void main(String args[]) {  
            new JPopMenu_Demo();  
        }  
    }

    有图有真相(不过挺丑)

    三:选项卡窗体:

    1.基本说明:

    2.常用方法:

    我们把多个JPanel的对象添加到 JTabbedPanel中去 。然后再
    JTabbedPanel 添加到窗体,代码如下:

    复制代码代码如下:

    JTabbedPane jp=new JTabbedPane(JTabbedPane.LEFT) ; //设置选项卡在坐标
    JPanel p1=new JPanel() ;
    JPanel p2=new JPanel() ;
    JPanel p3=new JPanel() ;
    JPanel p4=new JPanel() ; //创建多个容器
    jp.add("窗体1", p1) ;
    jp.add("窗体2", p2) ;
    jp.add("窗体3", p3) ;//添加子容器,并且为选项卡添加名字
    this.add(jp,BorderLayout.CENTER); //将选项卡窗体添加到主窗体上去

    3.代码示例和截图:

    复制代码代码如下:

    import java.awt.*;  
    import javax.swing.*;  
      
    /** 
     * <p>Title: 选项卡演示</p> 
     * <p>Description: 这里是一个选项卡演示,点击不同的卡片,显示的内容不同</p> 
     */  
      
    public class JTabbedPaneDemo1 extends JPanel {  
          
        public JTabbedPaneDemo1() {  
            super(new GridLayout(1, 1));  
      
            ImageIcon icon = createImageIcon("images/MyIcon.gif");  
            JTabbedPane tabbedPane = new JTabbedPane();  
      
            Component panel1 = makeTextPanel("#第一个卡片#");  
            tabbedPane.addTab("One", icon, panel1, "第一个卡片提示信息!");  
            tabbedPane.setSelectedIndex(0);  
      
            Component panel2 = makeTextPanel("##第二个卡片##");  
            tabbedPane.addTab("Two", icon, panel2, "第二个卡片提示信息!");  
      
            Component panel3 = makeTextPanel("###第三个卡片###");  
            tabbedPane.addTab("Three", icon, panel3, "第三个卡片提示信息!");  
      
            Component panel4 = makeTextPanel("####第四个卡片####");  
            tabbedPane.addTab("Four", icon, panel4, "第四个卡片提示信息!");  
      
            // 将选项卡添加到panl中  
            add(tabbedPane);  
        }  
      
        /** 
         * <br> 
         * 方法说明:添加信息到选项卡中 <br> 
         * 输入参数:String text 显示的信息内容 <br> 
         * 返回类型:Component 成员对象 
         */  
        protected Component makeTextPanel(String text) {  
            JPanel panel = new JPanel(false);  
            JLabel filler = new JLabel(text);  
            filler.setHorizontalAlignment(JLabel.CENTER);  
            panel.setLayout(new GridLayout(1, 1));  
            panel.add(filler);  
            return panel;  
        }  
      
        /** 
         * <br> 
         * 方法说明:获得图片 <br> 
         * 输入参数:String path 图片的路径 <br> 
         * 返回类型:ImageIcon 图片对象 
         */  
        protected static ImageIcon createImageIcon(String path) {  
            // java.net.URL imgURL = TabbedPaneDemo.class.getResource(path);  
            if (path != null) {  
                return new ImageIcon(path);  
            } else {  
                System.out.println("Couldn't find file: " + path);  
                return null;  
            }  
        }  
      
        public static void main(String[] args) {  
            // 使用Swing窗体描述  
            // JFrame.setDefaultLookAndFeelDecorated(true);  
      
            try {  
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());  
            } catch (Exception e) {  
                  
            }  
            // 创建窗体  
            JFrame frame = new JFrame("TabbedPaneDemo");  
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            frame.getContentPane().add(new JTabbedPaneDemo1(), BorderLayout.CENTER);  
      
            // 显示窗体  
            frame.setSize(400, 200);  
            frame.setVisible(true);  
        }  
    }  

    运行截图: 

  • 相关阅读:
    Web前端一种动态样式语言-- Less
    Windows下查看8080进程及结束进程命令
    Java应用程序实现屏幕的"拍照"
    批处理命令 BAT备份MySQL数据库
    LineNumberReader类
    SAXReader
    linux打包压缩命令汇总
    Jquery获取选中的checkbox的值
    Jquery_联系电话正则表达式
    CSS overflow 属性
  • 原文地址:https://www.cnblogs.com/ouyangping/p/6876209.html
Copyright © 2011-2022 走看看