MouseListener [RESOLVIDO]

Pessoal, desculpe sse a dúvida for noob, mas é que to começando em eclipse, e não sei se isso é normal…
Eu tava brincando com 1 frame aki em que quando o mouse passa em cima do jTextField, ele muda de cor…
Então adicionei um MouseListener…
O código ficou assim:

[code]jTextFieldNome01.addMouseListener(new MouseListener() {
@Override
public void mouseEntered(MouseEvent arg0) {
jTextFieldNome01.setBorder(new LineBorder(Color.RED));
}

		public void mouseExited(MouseEvent arg0) {
			jTextFieldNome01.setBorder(jTextFieldNome02.getBorder());
		}

		@Override
		public void mouseClicked(MouseEvent e) {
		}

		@Override
		public void mousePressed(MouseEvent e) {
		}

		@Override
		public void mouseReleased(MouseEvent e) {
		}

	});[/code]

Realmente precisa adicionar esse danto de @Override, mesmo se eu não for utilizar?
É pq tenho 15 jTextField…
Ficar fazendo isso em todos é fod@ !

Não é necessário ter Overrides. O objetivo de usá-lo é para garantir que exista o método em uma das interfaces que a classe implementa ou em uma classe que ele estende.

Isso evita que você mude o nome de um método na classe pai um dia e o método que você sobrescreveu fique sem inválido.

Vc precisa estar com todos esses métodos na sua classe, não precisa implementá-los, não importa se vc vai utilizá-los ou não. Vc está usando a Interface MouseListener que tem esses métodos, então vc precisa ao mínimo declará-los, caso vc apague algum desses métodos o java vai reclamar e sua aplicação não irá mais rodar.

MouseListener é uma interface. E todos os métodos de uma interface devem ser implementados. Isso é assim no Eclipse e no Netbeans. Porém, existe uma classe chamada MouseAdapter, que implementa a interface mouseListener, mas deixa todas as implementações em branco. Assim, basta estende-la e dar override só nos métodos pertinentes para você:

[code]jTextFieldNome01.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent arg0) {
jTextFieldNome01.setBorder(new LineBorder(Color.RED));
}

@Override
public void mouseExited(MouseEvent arg0) {
jTextFieldNome01.setBorder(jTextFieldNome02.getBorder());
}
}); [/code]

Se vários JTextFields da sua aplicação vão realizar o mesmo comportamento, você pode criar o MouseListener separadamente, e depois só defini-lo nos JTextField.

[code]private class ColorListener extends MouseAdapter
{
private JTextField txtField;
private Color color;

public ColorListener(JTextField txtField, Color color) {
this.txtField = txtField;
this.color = color;
}

@Override
public void mouseEntered(MouseEvent arg0) {
txtField.setBorder(new LineBorder(color));
}

public void mouseExited(MouseEvent arg0) {
txtField.setBorder(new JTextField().getBorder());
}
}

jTextFieldNome01.addMouseListener(new ColorListener(jTextFieldNome01, Color.RED));
jTextFieldNome02.addMouseListener(new ColorListener(jTextFieldNome02, Color.GREEN));[/code]

Aliás, o java faz coisas similares para outros listeners, como no caso do WindowListener e a classe WindowAdapter.

Ahhh
Sakei!
VLws ae =)