我想在一个JPanel上添加一个监听事件,当鼠标点击这个JPanel时这个JPanel会消失,怎么实现啊,谢谢。

解决方案 »

  1.   

    就是删除这个JPanel 能实现吗
      

  2.   

    可以,
    pane.addMouseListener(new MouseAdapter(){
        public void mouseClicked(MouseEvent e) {
            frame.remove(pane);
        }
    });
      

  3.   

    你直接把这窗体销毁  调用dispose()方法啊
    再new 个新的窗体啊
      

  4.   


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class PrimaryFrame extends JFrame {
        PrimaryPanel primaryPanel;    public PrimaryFrame() {
    init();
        }    private void init() {
    setTitle("PrimaryFrame");
    setLayout(new BorderLayout());
    primaryPanel = new PrimaryPanel(this);// -----------------面板JPanel
    add(primaryPanel);
    pack();
    setVisible(true);
    setResizable(false);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    addMouseListener(new PrimaryFrameMouseAdapter());
        }    public static void main(String[] args) {
    new PrimaryFrame();
        }
            private class PrimaryFrameMouseAdapter extends MouseAdapter {
    public void mouseClicked(MouseEvent e) {
        primaryPanel.mouseClicked(e);
    }
        }
        
    }////////////////////////////////////////////////////////////////////////////////////////////////
    class PrimaryPanel extends JPanel {
        JLabel jLable ;
        PrimaryFrame primaryFrame;    public PrimaryPanel(PrimaryFrame primaryFrame) {
    this.primaryFrame = primaryFrame;
    init();
        }    public void mouseClicked(MouseEvent e) {
    this.setVisible(false);//隐藏
    //primaryFrame.remove(this);//销毁

        }    private void init() {
    jLable = new JLabel("请点击我");
    add(jLable);
        }}////////////////////////////////////////////////////////////////////////////////////////////////