swing JPopupMenu 单击按钮弹出 例子下载
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class Main {
public static void main(String[] argv) throws Exception {
final JPopupMenu menu = new JPopupMenu();
JMenuItem item = new JMenuItem("Item Label");
menu.add(item);
final JButton component = new JButton("button");
component.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e)) {
menu.show(e.getComponent(), Math.round(component.getAlignmentX()) - 15,
Math.round(component.getAlignmentY()) + 20);
}
}
public void mouseReleased(MouseEvent evt) {
if (evt.isPopupTrigger()) {
//menu.show(evt.getComponent(), evt.getX(), evt.getY());
}
}
});
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
JFrame frame = new JFrame("测试");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(new Dimension(800, 600));
frame.setLocationRelativeTo(null);
final JPanel mainPanel = new JPanel(new BorderLayout());
JPanel topPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0));
topPanel.add(component);
mainPanel.add(topPanel, BorderLayout.NORTH);
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(mainPanel);
frame.setVisible(true);
}
});
}
}
分享到:
相关推荐
JPopupMenu 是 Swing 中的一个控件,用于创建弹出式菜单。弹出式菜单只有在用户执行了与平台相关的鼠标操作后才能出现。例如,在一个支持弹出式菜单的控件上用鼠标右键单击,在鼠标所在处将弹出快捷菜单。 一个简单...
除了菜单栏,Swing还提供了`JPopupMenu`类,它可以用于创建弹出式菜单,常用于右键点击或按钮的上下文菜单。创建弹出式菜单并关联到组件: ```java JPopupMenu popup = new JPopupMenu(); JMenuItem copyItem = new...
JPopupMenu 是 Java Swing 库提供的一个弹出菜单组件,它可以在用户触发事件时显示一个菜单,并允许用户选择其中的选项。
这个例子也使用`MouseListener`监听鼠标事件,但使用`mouseReleased`方法,因为对于Swing组件,右键释放会触发弹出菜单。 ```java addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent e...
本文将详细讲解如何使用下拉式菜单(menu)、弹出式菜单(JPopupMenu)以及选项卡窗体(JTabbedPane)。 首先,我们来看下拉式菜单的创建。下拉式菜单在Java Swing中通常与菜单栏(MenuBar)一起使用。创建下拉式...
Java 弹出菜单可以用于各种类型的组件,例如按钮、文本框、列表框等。 二、JTextArea 和 MouseListener 在我们的示例代码中,我们使用了 JTextArea 组件来显示文本,并使用 MouseListener 来捕获用户的右键点击...
25. JPopupMenu: 创建弹出式菜单,常用于右键点击操作。 26. JDialog: 创建对话框,用于显示警告、询问或设置信息,可独立或依附于其他窗口。 27. JColorChooser, JFileChooser: 分别用于选择颜色和打开或保存文件...
Java FTP客户端是一个基于Swing图形用户界面(GUI)的应用程序,用于实现文件的上传和下载功能。这个项目的核心是利用Java的FTP库来与FTP服务器进行通信,Swing则提供了友好的用户交互界面。在本项目中,用户可以...
3. Java:在Java Swing中,JPopupMenu类用于创建弹出菜单。可以将JMenuItem添加到JPopupMenu,然后通过show方法显示菜单。 4. Python(tkinter):Python的tkinter库提供了Menu类,可以创建一个菜单对象,然后使用...
- JPopupMenu:弹出菜单,常用于右键点击操作。 - JToolBar:工具栏,可放置常用操作按钮。 - JProgressBar和JSpinner:进度条和数值选择器,提供用户反馈。 6. **Swing外观(LookAndFeel)** - Swing支持不同...
首先,右键弹出菜单在Java中通常通过`javax.swing.JPopupMenu`类来创建。`JPopupMenu`是一个可弹出的组件,它可以关联到其他组件上,当该组件被右键点击时显示出来。例如,你可以这样创建一个基本的`JPopupMenu`: ...
开发者会添加一个JButton,当点击该按钮时,弹出JFileChooser,让用户选择媒体文件路径。 除此之外,mediaplayer可能还需要使用到其他的Swing组件,如JMenuBar和JMenuItem来创建菜单栏,提供打开、关闭、设置等高级...
本示例着重讲解如何使用Java Swing构建菜单、右键弹出菜单(popup menu)以及工具条(toolbar)。这是一个基于Maven的项目,可以方便地导入到Eclipse IDE中进行开发和调试。 首先,我们需要了解Java Swing中的菜单...
创建弹出式菜单通常包括创建`JPopupMenu`实例,添加` JMenuItem`,然后在需要触发的地方绑定该菜单。例如,可以将弹出式菜单添加到`JComponent`上,通过`addMouseListener()`监听鼠标事件,然后在右键点击时显示菜单...
弹出菜单(JPopupMenu)是Java Swing库提供的一种用户友好的组件,它可以在鼠标点击或右键点击时显示一系列选项。 首先,我们要了解Java AWT和Swing事件模型。Java使用事件监听器(Event Listeners)来处理各种用户...
JDialog用于创建弹出式对话框。 3. **布局管理器**:Swing支持多种布局管理器,如FlowLayout、BorderLayout、GridLayout、BoxLayout和GridBagLayout。布局管理器决定了组件在容器中的排列方式和大小。 4. **事件...
在计算机软件开发中,弹出式菜单(Pop-up Menu或Context Menu)是一种常见的用户界面元素,它可以在用户执行特定操作时动态出现,提供与当前上下文相关的选项。本篇文章将深入探讨弹出式菜单的使用,包括其设计原理...
`JPopupMenu`是 Swing 提供的弹出菜单组件,它可以被关联到一个组件上,当在这个组件上右键单击时显示。以下是一个基本的`JPopupMenu`的创建过程: 1. **创建JPopupMenu对象**: ```java JPopupMenu contextMenu ...
Swing组件间的事件处理机制就基于此模式,如按钮点击事件、文本框更改事件等。读者将学习到如何使用EventListener和EventObject来实现事件监听和处理,以及如何通过Observer接口来动态更新视图。 此外,书中还会...