Problemas com MouseListener

3 respostas
Leandro17x

Pessoal sou novato em java, e tento aprender por conta própria. Fiz um código de um programa no estilo daqueles de mercado, ta no começo, mas não sei resolver este erro:

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

public class Market{
	public static void main(String []args){
		JFrame tela = new JFrame("Market X 1.0");
		
		Icon icon_cadastro_01 = new ImageIcon("images/cadastro_01.png");
		Icon icon_cadastro_02 = new ImageIcon("images/cadastro_02.png");
		Icon icon_estoque_01 = new ImageIcon("images/estoque_01.png");
		Icon icon_estoque_02 = new ImageIcon("images/estoque_02.png");
		Icon icon_compras_01 = new ImageIcon("images/compras_01.png");
		Icon icon_compras_02 = new ImageIcon("images/compras_02.png");

		JButton button_estoque = new JButton(icon_estoque_01);
		button_estoque.setBounds(25,100,400,400);
		tela.add(button_estoque);

		
		MouseListener mouse_001 = new MouseListener(){
			public void mouseEntered(MouseEvent e){
				button_estoque.setIcon(icon_estoque_02);
			}
			public void mouseExited(MouseEvent e){
				button_estoque.setIcon(icon_estoque_01);
			}
		};
		
		button_estoque.addMouseListener(mouse_001);

		
		JButton button_compras = new JButton(icon_compras_01);
		button_compras.setBounds(440,100,400,400);
		tela.add(button_compras);
		
		JButton button_cadastro = new JButton(icon_cadastro_01);
		button_cadastro.setBounds(855,100,400,400);
		tela.add(button_cadastro);		

		tela.getContentPane().setLayout(null);
		tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		tela.setExtendedState(JFrame.MAXIMIZED_BOTH);
		tela.setSize(800,600);
		tela.setVisible(true);
	}
}

o erro é na linha 20:

D:\Meus Documentos\Leandro\Market>javac Market.java
Market.java:20: error: cannot find symbol
MouseListener mouse_001 = new MouseListener(){
^
symbol: class MouseListener
location: class Market
Market.java:20: error: cannot find symbol
MouseListener mouse_001 = new MouseListener(){
^
symbol: class MouseListener
location: class Market
2 errors

3 Respostas

E

http://docs.oracle.com/javase/6/docs/api/java/awt/event/MouseListener.html

Ou seja, você precisa fazer um import de java.awt.event.*

Leandro17x

Eu fiz o que vc falou, mas ai gerou 7 erros, ai eu resolvi dois e não sei o q fazer

O erro é esse:

D:\Meus Documentos\Leandro\Market>javac Market.java
Market.java:21: error: cannot find symbol
public void mouseEntered(MouseEvent e){
^
symbol: class MouseEvent
Market.java:24: error: cannot find symbol
public void mouseExited(MouseEvent e){
^
symbol: class MouseEvent
Market.java:20: error: is not abstract and does not over
e abstract method mouseReleased(MouseEvent) in MouseListener
MouseListener mouse_001 = new MouseListener(){
^
Market.java:22: error: local variable button_estoque is accessed from within
er class; needs to be declared final
button_estoque.setIcon(icon_estoque_02);
^
Market.java:25: error: local variable button_estoque is accessed from within
er class; needs to be declared final
button_estoque.setIcon(icon_estoque_01);
^
5 errors

e o código ficou assim:

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

public class Market{
	public static void main(String []args){
		JFrame tela = new JFrame("Market X 1.0");
		
		final Icon icon_cadastro_01 = new ImageIcon("images/cadastro_01.png");
		final Icon icon_cadastro_02 = new ImageIcon("images/cadastro_02.png");
		final Icon icon_estoque_01 = new ImageIcon("images/estoque_01.png");
		final Icon icon_estoque_02 = new ImageIcon("images/estoque_02.png");
		final Icon icon_compras_01 = new ImageIcon("images/compras_01.png");
		final Icon icon_compras_02 = new ImageIcon("images/compras_02.png");

		JButton button_estoque = new JButton(icon_estoque_01);
		button_estoque.setBounds(25,100,400,400);
		tela.add(button_estoque);

		MouseListener mouse_001 = new MouseListener(){
			public void mouseEntered(MouseEvent e){
				button_estoque.setIcon(icon_estoque_02);
			}
			public void mouseExited(MouseEvent e){
				button_estoque.setIcon(icon_estoque_01);
			}
		};
		
		button_estoque.addMouseListener(mouse_001);
		
		JButton button_compras = new JButton(icon_compras_01);
		button_compras.setBounds(440,100,400,400);
		tela.add(button_compras);
		
		JButton button_cadastro = new JButton(icon_cadastro_01);
		button_cadastro.setBounds(855,100,400,400);
		tela.add(button_cadastro);		

		tela.getContentPane().setLayout(null);
		tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		tela.setExtendedState(JFrame.MAXIMIZED_BOTH);
		tela.setSize(800,600);
		tela.setVisible(true);
	}
}
WellingtonRamos
troque:

import java.awt.event.MouseListener;

por

import java.awt.event.*;

Ou declare EXPLICITAMENTE todos os imports (cada classe terá um import referente)

Criado 6 de maio de 2013
Ultima resposta 8 de mai. de 2013
Respostas 3
Participantes 3