如何在 Java 中使用子菜单创建 JPopupMenu?
JPopupMenu 是 JComponent 类的子类,它可以在右键点击时出现在屏幕的任意位置。为了创建一个弹出菜单,我们可以使用 JPopupMenu 类。通常,我们可以将 菜单项 添加到 JPopupMenu 中,还可以通过将菜单项先添加到子菜单中,然后将其添加到 JPopupMenu 中,向 JPopupMenu 添加 子菜单 。弹出菜单由鼠标事件触发,因此我们需要注册一个 MouseListener 接口。我们可以重写 mouseReleased() 方法,以便在通过调用 isPopupTrigger() 方法获得适当事件后显示弹出菜单,并通过以鼠标事件坐标作为参数调用其 show() 方法来显示弹出菜单。
示例
import java.awt.event.*; import java.awt.*; import javax.swing.*; public class JPopupMenuwithSubMenuTest extends JFrame { private JPopupMenu popup; private JMenu subMenu; public JPopupMenuwithSubMenuTest() { setTitle("JPopupMenuwithSubMenu Test"); popup = new JPopupMenu(); subMenu = new JMenu("Course"); subMenu.add("Java"); subMenu.add("Python"); subMenu.add("Scala"); popup.add(new JMenuItem("First Name")); popup.add(new JMenuItem("Last Name")); popup.addSeparator(); popup.add(subMenu); addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent me) { showPopup(me); } }) ; setSize(400, 275); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } void showPopup(MouseEvent me) { if(me.isPopupTrigger()) popup.show(me.getComponent(), me.getX(), me.getY()); } public static void main(String args[]) { new JPopupMenuwithSubMenuTest(); } }
输出
广告