我有两个文件,一个继承JFrame 一个继承JPanel
 
JFrame add了JPanel JPanel实现了MouseListener。。 public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==this.dinerMag)
{
Cursor m=new Cursor(Cursor.HAND_CURSOR);
this.setCursor(m);
System.out.println("mouse enter");
}

}

重要代码在上问:为什么控制台已经输出mouse enter 但是鼠标形状却不改变???

解决方案 »

  1.   

    this.setCursor(m);
    是否是这句有问题,应该是继承JPanel的对象引用setCursor
      

  2.   


    public static void main(String[] args) {
    JFrame jf = new JFrame("测试");
    jf.setBounds(200, 100, 400, 450); jf.setVisible(true); final JLabel jl = new JLabel("这个是Label");
    jl.setBackground(Color.GREEN);
    jl.addMouseListener(new MouseListener() { public void mouseEntered(MouseEvent e) {
    jl.setCursor(new Cursor(Cursor.HAND_CURSOR));
    } // ... 其他方法略
    });
    jf.add(jl); }
      

  3.   

    试过了,你的程序没问题,鼠标会变的。另外建议把jf.setVisible(true);方法放到main方法的最后。