Problemas Com HandlerClass Trabalhando com Eventos de Mause

Belza pessoal, estou trabalhando para fazer um programinha, onde ele identifique as funções do mause. Porem estou com um probleminha, ele sempre aposta um erro para a linha 19 e 23. As linhas do HandlerClass.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Gui extends JFrame{
	private JPanel mausepanel;
	private JLabel statusbar;
	
	public  Gui(){
		super("Titulo");
		
		mausepanel = new JPanel();
		mausepanel.setBackground(Color.WHITE);
		add(mausepanel, BorderLayout.CENTER);
		
		statusbar = new JLabel("default");
		add(statusbar, BorderLayout.CENTER);
		
		Handlerclass handler = new Handlerclass();  //erro?
		mausepanel.addMouseListener(handler);
		mausepanel.addMotionListener(handler);
		
			private class Handlerclass implements MouseListener , MouseMotionListener{
							public void mouseClicked(MouseEvent event){
								statusbar.setText(String.format("Clicado na %d %d",event.getX(),event.getY()));
							}public void mousePressed(MouseEvent event){
								statusbar.setText("Mause apertado");						
							}public void mouseReleased(MouseEvent event){
								statusbar.setText("Mause solto");						
							}public void mouseEntered(MouseEvent event){
								statusbar.setText("Mause Entrou na Tela");	
								mausepanel.setBackground(Color.RED);
							}public void mouseExited(MouseEvent event){
								statusbar.setText("Mause saiu da Tela");						
								mausepanel.setBackground(Color.WHITE);
							}public void mouseDragged(MouseEvent event){
								statusbar.setText("Mause Largado");					
							}
							
				}
			
			
			
			}
	}

esse metodo é executado em outra classe

[code]
import javax.swing.JFrame;

public class Apicativo {
public static void main(String[] args) {

	Gui go = new Gui();
	go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	go.setSize(300,200);
	go.setVisible(true);

}

}[/code]

Obrigado pela atenção pessoal!

Qual o erro que está apontado?

Vê se agora funciona:

import java.awt.*;  
import java.awt.event.*;  
import javax.swing.*;  

public class Gui extends JFrame{  
private JPanel mausepanel;  
private JLabel statusbar;  
  
	public  Gui(){  
		super("Titulo");  
		  
		mausepanel = new JPanel();  
		mausepanel.setBackground(Color.WHITE);  
		add(mausepanel, BorderLayout.CENTER);  
		  
		statusbar = new JLabel("default");  
		add(statusbar, BorderLayout.SOUTH); 
		   
		mausepanel.addMouseListener(new Handlerclass() );
		mausepanel.addMouseMotionListener(new Handlerclass2() );
	}  
	
	private class Handlerclass extends MouseAdapter{  
		public void mouseClicked(MouseEvent event){  
			statusbar.setText(String.format("Clicado na %d %d",event.getX(),event.getY()));  
		}
		public void mousePressed(MouseEvent event){  
			statusbar.setText("Mause apertado");                          
		}
		public void mouseReleased(MouseEvent event){  
			statusbar.setText("Mause solto");                         
		}
		public void mouseEntered(MouseEvent event){  
			statusbar.setText("Mause Entrou na Tela");    
			mausepanel.setBackground(Color.RED);  
		}
		public void mouseExited(MouseEvent event){  
			statusbar.setText("Mause saiu da Tela");                          
			mausepanel.setBackground(Color.WHITE);  
		}
		public void mouseDragged(MouseEvent event){  
			statusbar.setText("Mause Largado");                   
		}		  
	}
	
	private class Handlerclass2 extends MouseMotionAdapter{  
		public void mouseDragged(MouseEvent event){  
			statusbar.setText("Mause Largado");                   
		}		  
	}
}  

E a outra classe não muda nada, eu só acrescentei um “l” ( Letra L ) no nome da outra classe porque está : apicativo, ai ficou aplicativo.

Se não souber o que eu fiz, me pergunte que eu responderei.

Opa… bahhhh mtu obrigado… show vÊ esse programa funcionando

o erro ocorria exatamente na linha 19
Percebi q vc não usou essa intrução

Meu:

     
        Handlerclass handler = new Handlerclass();  //erro?  
        mausepanel.addMouseListener(handler);  
        mausepanel.addMotionListener(handler)

Seu:


   mausepanel.addMouseListener(new Handlerclass() );  
        mausepanel.addMouseMotionListener(new Handlerclass2() );  
    }    

Só não entendi o motivo do Handlerclass2 ?

Mas obrigado de novo, já me ajudou e muito!

Bom, vamos lá, os erros que percebi que você estava cometendo.:

1° - Declarando a classe dentro do construtor
2° - Você estava adicionando o JLabel na mesma posição do mausepanel. Veja a diferença do seu código para o meu:

add(mausepanel, BorderLayout.CENTER);  // linha 14 no programa
add(statusbar, BorderLayout.CENTER);      // linha 17 no programa

E agora o meu código:
add(mausepanel, BorderLayout.CENTER); // linha 14 no programa add(statusbar, BorderLayout.SOUTH); // linha 17 no programa

3° - Na classe Ouvinte você estava implementando duas interfaces, logo você tinha que implementar TODOS OS MÉTODOS DA INTERFACES, e você não estava implementando o metodo: “mouseMoved” de MouseMotionListener, logo dava erro.

4° - Quando você faz isso:

extends MouseAdapter

Você está estendendo a classe Adaptadora MouseAdapter, que é uma classe Abstrata que implementa os metodos da interface, sendo assim você NÃO é necessariamente obrigado a implementar TODOS os métodos da MouseAdapter. Entendeu?

5° - E como você só pode estender uma classe na declaraçao, então eu criei outra classe para estender a classe Adaptadora MouseMotionAdapter, por isso o motivo do Handlerclass2