1、要有程序入口函数mainimport java.awt.event.*;
import javax.swing.*;
import java.awt.*;public class MouseTest extends JFrame  {
    JLabel whichButton = new JLabel("Click a mouse button");    public MouseTest() {
        super("Mouse Test");
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         MyPanel pane = new MyPanel();
    setContentPane(pane);
        pack();
        setVisible(true);
    }
    
    public static void main(String arg[]){
     MouseTest m=new MouseTest();
    }
}2、
这个问题主要是2个:
(1)whichButton用于监听事件,不是panel
(2)myPanel本身是个Panel,不需要在建立一个Panel对象了
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;public class MyPanel extends JPanel implements MouseListener {
    JLabel whichButton;    public MyPanel() {
        whichButton = new JLabel("Click a mouse button");
        //JPanel pane = new JPanel();
setSize(400, 325);
whichButton.addMouseListener(this);
        add(whichButton);
        
    }    public void mouseClicked(MouseEvent evt){
        int button=evt.getModifiers();        switch(button) {
            case MouseEvent.BUTTON1_MASK:
                whichButton.setText("Left Button");
                break;
            case MouseEvent.BUTTON2_MASK:
                whichButton.setText("Middle Button");
                break;
            case MouseEvent.BUTTON3_MASK:
                whichButton.setText("Right Button");
         }
    }    public void mousePressed(MouseEvent evt) {
        // do nothing
    }    public void mouseReleased(MouseEvent evt) {
        // do nothing
    }    public void mouseEntered(MouseEvent evt) {
        // do nothing
    }    public void mouseExited(MouseEvent evt) {
        // do nothing
    }   
}