import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class mouseDemo implements MouseListener{
JFrame frame=new JFrame("获取鼠标");
JLabel label1,label2; public mouseDemo(){
Container con=frame.getContentPane();
con.setLayout(new BorderLayout(0,1));
con.add(label1,BorderLayout.NORTH);
con.add(label2,BorderLayout.SOUTH);
con.addMouseListener(this);
frame.setBounds(300,300,400,400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} public void mouseClicked(MouseEvent e){
label2.setText("鼠标当前坐标( "+e.getX()+","+e.getY());
}
public void mouseEntered(MouseEvent e){
label1.setText(e.getX()+","+e.getY());
label2.setText("鼠标进入( "+e.getX()+","+e.getY());
}
public void mouseExited(MouseEvent e){
label1.setText("");
label2.setText("鼠标离开");
}
public void mousePressed(MouseEvent e){
label2.setText("鼠标在:( "+e.getX()+","+e.getY()+" )按下");
}
public void mouseReleased(MouseEvent e){
label2.setText("鼠标在( "+e.getX()+","+e.getY()+" )松开");
}
public static void main(String arg[]){
new mouseDemo();
}
}

解决方案 »

  1.   

    Container con=frame.getContentPane(); 
    用面板对象接收且记得转型!而且全放在构造里面也不合适,还是做个普通方法。
    //下面前置声明你的控件(PS:搭积木了,先把积木摆出来吧。)
    JLabel label1,label2; 
    JFrame frame;
    //下面是你的构造;
    public mouseDemo(){
     //构造里面就做一件事情,调用你的搭积木方法。
      try{
        搭积木方法名();
      }catch(Exception ex){
         ex.printStackTrace(); 
      }

    //搭积木方法
    public void 搭积木方法名()throws Exception{
      //在这里面写你的逻辑,实例化、布局等等
    }class mouse....//内部类该怎么写还怎么写
      

  2.   

    要初始化label1,label2LZ在程序里添加
                       label1=new JLabel();
    label2=new JLabel();

    就可以搞定了
      

  3.   


    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; public class keyDemo implements KeyListener{ 
        JFrame frame=new JFrame("移动按钮"); 
        JButton button; 
        JButton b=new JButton();
        int x,y,x1,y1; 
        Container con=frame.getContentPane(); 
        public keyDemo(){ 
            
            con.setLayout(null); 
            button=new JButton("  "); 
            button.setBackground(Color.red); 
            button.setBounds(20,30,100,150); 
            b.setBounds(5,5,x1,y1);
            con.add(button); 
            frame.addKeyListener(this); 
            frame.setBounds(300,300,500,600); 
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
            frame.setVisible(true);
        }     public void keyPressed(KeyEvent e){ 
            x=100; 
            y=150; 
            if(e.getKeyCode()==KeyEvent.VK_UP){ 
                y+=2; 
                button.setBounds(20,30,x,y); 
                button.setText("上"); 
            } 
            else 
                if(e.getKeyCode()==KeyEvent.VK_DOWN){ 
                    x-=2; 
                    button.setBounds(20,30,x,y); 
                    button.setText("下"); 
                } else 
                    if(e.getKeyCode()==KeyEvent.VK_LEFT){ 
                        y-=2; 
                        button.setBounds(20,30,x,y); 
                        button.setText("左"); 
                    } else 
                        if(e.getKeyCode()==KeyEvent.VK_RIGHT){ 
                            y+=2; 
                            button.setBounds(20,30,x,y); 
                            button.setText("右"); 
                        } 
        } 
        public void keyTyped(KeyEvent e2){ 
            x1=button.getX(); 
            y1=button.getY(); 
            if(e2.getKeyCode()==x){ 
                x1+=5; 
                con.add( b ); 
            } 
        } 
        public void keyReleased(KeyEvent e3){}     public static void main(String arg[]){ 
            new keyDemo(); 
        } 
    }构造函数中增加一个语句 frame.setVisible(true); con.add(new JButton().setBounds(5,5,x1,y1)); 
    修改为 
    con.add(b); 
    JButton b=new JButton(); 
    b.setBounds(5,5,x1,y1); 
    new JButton().setBounds(5,5,x1,y1)返回为void类型,con.add( void类型)错误 
    public void setBounds(....) 
      

  4.   

    我上面的代码发错了,和那个帖子不一样啊
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.*; 
    public class mouseDemo implements MouseListener{ 
    JFrame frame=new JFrame("获取鼠标"); 
    JLabel label1=new JLabel(),label2=new JLabel(); 

    public mouseDemo(){ 
    Container con=frame.getContentPane(); 
    con.setLayout(new BorderLayout(0,1)); 
    con.add(label1,BorderLayout.NORTH); 
    con.add(label2,BorderLayout.SOUTH); 
    con.addMouseListener(this); 
    frame.setBounds(300,300,400,400); 
    frame.setVisible(true); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 


    public void mouseClicked(MouseEvent e){ 
    label2.setText("鼠标当前坐标( "+e.getX()+","+e.getY()); 

    public void mouseEntered(MouseEvent e){ 
    label1.setText(e.getX()+","+e.getY()); 
    label2.setText("鼠标进入( "+e.getX()+","+e.getY()); 

    public void mouseExited(MouseEvent e){ 
    label1.setText(""); 
    label2.setText("鼠标离开"); 

    public void mousePressed(MouseEvent e){ 
    label2.setText("鼠标在:( "+e.getX()+","+e.getY()+" )按下"); 

    public void mouseReleased(MouseEvent e){ 
    label2.setText("鼠标在( "+e.getX()+","+e.getY()+" )松开"); 

    public static void main(String arg[]){ 
    new mouseDemo(); 

    }
      

  5.   

    哥们,发代码的时候,最好是排版一下,发帖功能栏上有发代码的功能,有助于阅读和理解JLabel label1,label2; 没有初始化
      

  6.   

    JLabel label1,label2; 没有初始化
      

  7.   

    public class mouseDemo implements MouseListener{ 
    JFrame frame=new JFrame("获取鼠标"); 
    JLabel label1,label2; 
    没有初始化?(貌似不是基本类型)