源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane)组件使用案例

  • 时间:2022-04-10 14:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Java Swing中的下拉式菜单(menu)、弹出式菜单(JPopupMenu)、选项卡窗体(JTabbedPane)组件使用案例
菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中. 菜单组件由菜单栏 (MenuBar)、菜单(Menu)和菜单项(MenuItem)三部分组成。 一个菜单栏由若干个菜单组成,一个菜单又由若干个菜单项组成。一般菜单栏放 Frame 窗口中,只要调用 Frame 类的 setMenuBar()方法即可。 常用的菜单有:下拉式菜单和弹出式菜单(独立显示,可出现在任意地方). [b]一:下拉式菜单的创建步骤:[/b] 1.创建一个菜单栏。 2.调用 Frame 的 setMenuBar()方法将菜单栏加入 Frame 中。 3.分别创建若干个 Menu 对象,并加入 MenuBar 中。 4.对于每个 Menu 对象,分别创建若干个 MenuItem 对象,并加入 Menu 中。 实例:
[u]复制代码[/u] 代码如下:
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();    }  }
有图有真相:(下拉的菜单项无法截图) [img]http://files.jb51.net/file_images/article/201410/20141013104317172.png?2014913104334[/img] [b]二:弹出式菜单的创建步骤:[/b] 1.先建立最基本的JFrame框架. 2.创建右键弹出式菜单(JPopupMenu)和添加的菜单项(JMenuItem). 3.使用add方法和insert方法向JPopupMenu中添加或者插入. 4.通过调用弹出式菜单触发器对应的show方法来显示弹出式菜单,检查所有的MouseEvent事件,看其是否是弹出式菜单触发器,然后在合适的时候显示弹出式菜单 实例:
[u]复制代码[/u] 代码如下:
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();      }  }
有图有真相(不过挺丑) [img]http://files.jb51.net/file_images/article/201410/20141013104405134.png?2014913104423[/img] [b]三:选项卡窗体:[/b] 1.基本说明: [b]2.常用方法:[/b] 我们把多个JPanel的对象添加到 JTabbedPanel中去 。然后再 JTabbedPanel 添加到窗体,代码如下:
[u]复制代码[/u] 代码如下:
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); //将选项卡窗体添加到主窗体上去
[b]3.代码示例和截图:[/b]
[u]复制代码[/u] 代码如下:
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);      }  } 
运行截图:  [img]http://files.jb51.net/file_images/article/201410/20141013104448997.png?2014913104455[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部