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

菜单是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); 
    } 

运行截图: 

时间: 2024-08-03 16:31:58

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

DIV下拉式菜单(一)

菜单|下拉 script> var cm=null; document.onclick = new Function("show(null)") function getPos(el,sProp) { var iPos = 0 while (el!=null) { iPos+=el["offset" + sProp] el = el.offsetParent } return iPos } function show(el,m) { if (m) { m.st

用好表单的下拉式菜单

菜单|下拉 用<select>标记可以在表单中方便地插入一个下拉式菜单,以方便用户进行选择,这在制作调查表或用户订单时非常有用,对这种下拉式菜单稍加改造则可以制作出名符其实的下拉式导航菜单. 一.下拉式选择框 这两个示例,外观形式有所不同,但都是用了<select>和<option>标记做出来的,只是设置了不同的参数而已.比较一下它们的源代码,就明白了: 左边的菜单源代码:<select name="select" size="4&q

只用CSS做的下拉式菜单--A Drop-Down Menu With Only CSS

最近在网上发现了一个只用CSS实现的下拉式菜单(Drop-Down Menu),感觉很新鲜也很酷.于是仔细看了作者的介绍以及源代码,发现核心就是一个":hover"伪类的使用.在CSS1中此伪类仅可用于a对象.且 对于无href属性(特性)的a对象,此伪类不发生作用.在CSS2中此伪类可以应用于任何对象.但IE6及其以下版本都不能很好的支持CSS2,因此 IE6及其以下版本就不能很好的运行这个程序了.所幸Firefox,Netscape,Opera,Safari等浏览器的最新版本均能很

DIV下拉式菜单(二)

菜单|下拉  你可以把这段程序放在<head></head>标识之间,或是网页的任意位置. 接下来,我们还要定义我们的实际菜单项了,这里我们要给每一个菜单项加上一个鼠标的移动事件(OnMouseOver)句柄,并且让这个事件调用我们上面定义的Show函数.也就是说,当鼠标一进入我们的菜单项中,我们的show函数就开始执行了.这里,我们还要给我们的每个菜单项定义一个ID号,并且把其下拉菜单列的ID名传入Show函数中,这对我们控制下拉菜单列很关键,下面我给出了菜单项的HTML语法描述

请问:下拉式菜单中的选项能否做超链接或怎样做?

面的代码是中国微软的代码,你可以参考着写.<script LANGUAGE="JavaScript"><!--function load(form) {var url = form.list.options[form.list.selectedIndex].value;if (url != "") open(url, "_self");return false;}// --></script><form

Javascript设计网页中的下拉菜单

javascript|菜单|设计|网页|下拉 在网页制作时,为了更好地组织信息,使显示的信息分类明确.层次清晰,网页制作者往往费尽心机.常用的方法有用树型结构显示信息,用表格进行网页布局,用框架(frame)组织页面等等.但对于习惯了Windows操作系统的用户来说,利用菜单操作可以算是最自然的方法了.下面我们就来看一下怎样在网页中设计下拉式菜单. 下拉式菜单由若干个显示在窗口顶部的主菜单条和各个菜单条下面的子菜单组成.每个子菜单往往还包含几个子菜单项.通常,只有菜单条显示在窗口中,并且当鼠标指

&amp;#106avascript设计网页中的下拉菜单

菜单|设计|网页|下拉 在网页制作时,为了更好地组织信息,使显示的信息分类明确.层次清晰,网页制作者往往费尽心机.常用的方法有用树型结构显示信息,用表格进行网页布局,用框架(frame)组织页面等等.但对于习惯了Windows操作系统的用户来说,利用菜单操作可以算是最自然的方法了.下面我们就来看一下怎样在网页中设计下拉式菜单. 下拉式菜单由若干个显示在窗口顶部的主菜单条和各个菜单条下面的子菜单组成.每个子菜单往往还包含几个子菜单项.通常,只有菜单条显示在窗口中,并且当鼠标指针指向菜单条时,菜单条

WinForm控件开发总结(九) 为属性提下拉式属性编辑器

在上一篇文章,我介绍了如何编写模态对话框属性编辑器,这篇文章我将介绍如何编写下拉式属性编 辑器.下拉式(DropDown)属性编辑器和模态对话框属性编辑器的不同之处就是,当你点击属性值修改的 时候,模态对话框编辑器是弹出一个模态对话框,而下拉式属性编辑器却是在紧贴着属性值的地方显示一 个下拉的控件.不知道大家注意到了没有,这里我说的是显示一个下拉的控件,而这个控件也是需要你去 开发的,接下来我还是以Scope属性为例,介绍一下具体的实现. 首先我们要创建一个用于编辑属性的控件,在本系列文章的开始

在Java swing中图片的添加

问题描述 在Java swing中图片的添加 在Java swing 中按下一个按钮,然后换一张图片,图片放在JLabel中,图片是用ImagIO 读入的,麻烦给个例子 解决方案 java swing 图片处理特效 Java Swing Graphics 获取组件图片 图片旋转Java 拖动Swing组件和图片 解决方案二: 设置成事件监听就好了 解决方案三: 直接在按钮的事件里设置Jlabel