Swing弹出式菜单
缺省时,Swing弹出式菜单是轻量组件(注:这是一种简化的说法,但适用于此处的讨论。如果轻量弹出式菜单与重量组件重叠,则弹出式菜单将在该重量组件下面显示。如图2小应用程序所示。
有些Swing组件使用弹出式菜单。Swing菜单组件就是一种使用弹出式菜单的组件,它在一个菜单被激活时,显示一个弹出式菜单。缺省时,如果一个与某个菜单相关联的弹出式菜单完全处在弹出式菜单所在的窗口吕,则弹出式菜单使用轻量组件。图2-7所示的小应用程序中与File菜单相关联的弹出式菜单是一个轻量组件,所以它在重量组件AWT按钮的下面显示。
例1在重量组件下面显示的轻量弹出式菜单
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JApplet {
public void init() {
Container contentPane = getContentPane();
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("File");
menu.add("New ...");
menu.add("Open ...");
menu.add("Save As ...");
menu.add("Save");
menu.add("Exit");
contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));
contentPane.add(new Button("An AWT Button ............"));
menubar.add(menu);
setJMenuBar(menubar);
}
}
这个小应用程序创建了一个菜单条、一个AWT按钮和一个菜单。把菜单项添加到菜单中,再把菜单添加到菜单条中,按钮则被添加到小应用程序的内容窗格中。最后,调用JApplet.setJMenuBar(),把菜单条添加到小应用程序中。
幸运的是,Swing提供了一个机制,它迫使弹出式菜单是重量组件,这样,它们就不会在重量组件下面弹出来。JPopupMenu类提供了一个static方法,该方法可决定弹出式菜单是重量的还是轻量的(注:某些弹出式菜单即可以指定为轻量的,也可以指定为重量的。)
JPopupMenu.setDefaultLightWeightPopupEnabled()以一个boolean值为参数,这个值指出是把弹出式菜单实例化为轻量的还是把弹出式菜单实例化为重量的,调用setDefaultLightWeightPopupEnabled()时,如果这个boolean值为true,则创建的弹出式菜单是轻量的,如果这个boolean值为false,则创建的弹出式菜单是重量的(注:这也是简化的说法,但同样适用于这里的讨论)。
图2所示的小应用程序除了在菜单条被实例化之前调用了JPopupMenu.setDefaultLightWeightPopupEnabled(false)以外,其余部分都与图1所示的小应用程序相同。
例2 使用重量弹出式菜单
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JApplet {
public void init() {
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
Container contentPane = getContentPane();
JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("File");
menu.add("New ...");
menu.add("Open ...");
menu.add("Save As ...");
menu.add("Save");
menu.add("Exit");
contentPane.setLayout(new FlowLayout(FlowLayout.LEFT));
contentPane.add(new Button("An AWT Button ............"));
menubar.add(menu);
setJMenuBar(menubar);
}
}
分享到:
相关推荐
Swing 弹出式菜单用法 Swing 弹出式菜单是 Java Swing 库中的一种控件,用于提供菜单项供用户选择。菜单控件是 Swing 提供的非常重要的控件之一,本章将对 Swing 的菜单进行介绍,主要包括菜单简介、JMenuBar、...
在Java编程语言中,弹出式菜单(PopupMenu)是一种常见的用户界面组件,它可以在用户的鼠标点击或者其他特定事件触发时出现,提供一系列可选择的操作。在本教程中,我们将深入探讨如何利用Java实现弹出式菜单,同时...
序 前言 ... 2.3.2 Swing弹出式菜单 2.3.3 滚动 2.3.4 内部窗体 2.4 Swing和线程 2.4.1 Swing单线程设计的结果 2.4.2 SwingUtilties类的invokeLater和invokeAndWait方法 2.5 本章回顾
2.3.2 Swing弹出式菜单 2.3.3 滚动 2.3.4 内部窗体 2.4 Swing和线程 2.4.1 Swing单线程设计的结果 2.4.2 SwingUtilties类的invokeLater和invokeAndWait方法 2.5 本章回顾 第3章 Swing组件的体系结构...
在GUI库如Java Swing或Qt中,可以使用JPopupMenu或QMenu类来创建弹出式菜单。这些库提供了方便的方法来添加菜单项和设置事件监听器,以响应用户的点击操作。 接下来,我们转向趣味调色板。趣味调色板是指一种创新且...
今天,我们将学习如何使用 Java 弹出菜单来为 JTextArea 添加右键弹出式菜单,实现复制、粘贴、剪切功能。 一、Java 弹出菜单概述 Java 弹出菜单是一种 context-sensitive 菜单,即在用户点击右键时出现的菜单。它...
本文将详细讲解如何使用下拉式菜单(menu)、弹出式菜单(JPopupMenu)以及选项卡窗体(JTabbedPane)。 首先,我们来看下拉式菜单的创建。下拉式菜单在Java Swing中通常与菜单栏(MenuBar)一起使用。创建下拉式...
本示例着重讲解如何使用Java Swing构建菜单、右键弹出菜单(popup menu)以及工具条(toolbar)。这是一个基于Maven的项目,可以方便地导入到Eclipse IDE中进行开发和调试。 首先,我们需要了解Java Swing中的菜单...
例如,可以将弹出式菜单添加到`JComponent`上,通过`addMouseListener()`监听鼠标事件,然后在右键点击时显示菜单。 接下来,我们来看看Swing组件的一些常用类型和方法。Swing组件包括但不限于`JButton`(按钮)、`...
总之,Java Swing 提供了强大的工具来创建功能丰富的菜单按钮,无论是传统的菜单栏还是弹出式菜单,都能满足开发者的需求。通过学习和实践这些基本概念,初学者可以快速上手,并逐步构建出复杂的桌面应用。
本设计使用了Swing库提供的GUI组件来创建菜单、工具栏、弹出式菜单等界面元素。 在该设计中,我们使用了JMenuBar、JMenu、JMenuItem等组件来创建菜单系统。JMenuBar是菜单栏的容器,用于容纳多个JMenu对象。JMenu是...
Swing中的`JPopupMenu`类是用于创建弹出菜单的核心类,而在JavaFX中,你可以使用`ContextMenu`类来实现相同功能。 2. **事件监听**: 实现右键菜单的关键是添加鼠标事件监听器。在Swing中,你需要添加`MouseListener...
最后,弹出式菜单(PopupMenu)是Java Swing提供的一种便捷的用户交互方式。它允许用户在特定组件上右击时显示一个菜单,用于执行相关的命令或操作。在Example23.java中,开发者可能会学习到如何创建PopupMenu对象,...
同时,需要使用`JPopupMenu`来创建弹出式菜单,显示用户定义的菜单项。以下是根据提供的代码和描述详细讲解如何在Swing中实现鼠标右键功能: 首先,我们创建一个`JPopupMenu`对象,然后添加一些`JMenuItem`到这个弹...
- `JPopupMenu`:表示弹出式菜单。 这些类之间的关系体现了Swing菜单系统的复杂性和灵活性。例如,`JMenu`继承自`JMenuItem`,这是因为它本身包含了一个菜单项(即标题按钮),用于显示或隐藏菜单。 #### 五、菜单...
对于弹出菜单事件,我们主要关注`PopupMenuListener`接口,它包含了`popupMenuWillBecomeVisible`、`popupMenuWillBecomeInvisible`和`popupMenuCanceled`三个方法,分别在弹出菜单显示前、关闭后和被取消时调用。...
该记事本主要功能:主菜单有文件、编辑、格式、帮助四个选项;文件菜单包括:新建、打开、保存、退出四个菜单项;编辑菜单:复制、剪切、粘贴、撤销、全选、删除六个...弹出式菜单:实现对文档的复制、剪切、粘贴功能。
4. **模态对话框**:如 JDialog 和 JOptionPane,提供弹出式交互界面。 在整合 Spring 和 Swing 的应用中,我们通常会利用 Spring 的 DI 来管理 Swing 组件的生命周期,以及处理业务逻辑。例如,我们可以创建一个 ...
- 没有弹出式菜单和滚动窗格等基本元素; - 基于同位体的体系结构存在严重缺陷; - 事件处理模型基于继承,不够灵活。 - **Swing的优势**: - 100%纯Java实现,不依赖于本地代码,这意味着Swing组件在不同的...