如题

解决方案 »

  1.   

    没发现你说的问题,下面的程序你可以直接运行。import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.*;public class TestButtonPopMenu {
        static JPopupMenu popmenu = new JPopupMenu();
        static {
            for (int i=0; i<5; i++) {
                popmenu.add("MenuItem " + Integer.toString(i));
            }
        }    public static void main(String[] args) {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Container container = frame.getContentPane();        // 按钮
            JButton bn = new JButton("PopupMenu");
            bn.addMouseListener(
                new MouseAdapter(){
                    public void mouseReleased(MouseEvent me){
                        // 去掉下面的注释,可以只在右键单击时弹出菜单
                        //if (me.isPopupTrigger()) {
                            popmenu.show(
                                me.getComponent(),
                                me.getX(), me.getY());
                        //}
                    }
            });        JPanel pane = new JPanel();
            pane.add(bn);
            pane.setBorder(
                new EmptyBorder(20, 20, 20, 20));        container.add(pane);
            frame.pack();        Dimension screen = 
                Toolkit.getDefaultToolkit().getScreenSize();
            int x =    (screen.width - frame.getWidth()) / 2;
            int y = (screen.height - frame.getHeight()) / 2;        frame.setLocation(x, y);        frame.setVisible(true);
        }
    }
      

  2.   

    呵呵,谢谢。不好意思了,我的button里忘记add(popupmenu)了。不过现在新的问题是:我在按钮中按右键菜单出来后,再当我按下快捷菜单的一个选项时,我怎么取得这个button实例。比如我按右键->改变颜色,然后button a的颜色就被改变,button a 要怎么取得啊。
      

  3.   

    me.getComponent()得到的就是当前的JButton