读书人

swing JPopupMenu 单击按钮弹出 例子上

发布时间: 2012-10-24 14:15:58 作者: rapoo

swing JPopupMenu 单击按钮弹出 例子下载
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);      }    });  }}

读书人网 >编程

热点推荐