使用另一个JPanel中的JPanel创建一个弹出窗口

时间:2014-03-24 18:34:13

标签: java swing jpanel jbutton popupwindow

我正在使用netbeans为我正在使用的工具创建GUI。工具内容包含在扩展JPanel并具有按钮的类中。当我单击按钮时,我想要一个弹出的窗口,其中包含其他按钮和选项,其内容在另一个类中定义,该类也扩展了JPanel。我怎么能做到这一点?

主类的简化代码。我删除了对此问题不重要的所有代码:

public class FirstPanel extends JPanel {

    private JButton myButton;

    public FirstPanel() {

        myButton = new JButton("Button");
        myButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {

                // TO DO

            }
        });
    }
}

然后我的第二堂课看起来很相似,并负责处理所有按钮等。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:2)

有关在跨平台MouseListener中处理此问题的正确方法,请参阅How to Use Menus: Bringing Up a Popup Menu。更简单地说,使用setComponentPopupMenu(),如图所示here。在任何一种情况下,请注意使用Action来封装所需的功能。

答案 1 :(得分:0)

使用类似

的内容
if (evt.getModifiers() == MouseEvent.BUTTON3_MASK){  
    popup.show(evt.getComponent(), evt.getX(), evt.getY());//show popup 
}