Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Criando uma classe que ao ser instanciada execute um listener

Minha duvida e a seguinte, sei que no Alura não tem curso de swing, mas sempre que quero controlar uma entrada de um usuário em um campo JTextField eu utilizo um método.

// Controle de entrada para valores inteiros private void validaInteiro(java.awt.event.KeyEvent evt) { String caracteres = "0987654321"; if (!caracteres.contains(evt.getKeyChar() + "")) { evt.consume(); } }

Assim adiciono um keylistener no JTextField com a chamada do método dentro, so que toda vida que quero fazer esse tipo de controle tenho que espalhar esse método nas classes, mas o que eu gostaria de verdade e criar uma classe extendida de JTextField com esse listener já implementado, mas todas as minhas tentativas realmente estão me frustando bastante.

public class ValidarCampoComInteiros extends JTextField {

private static final long serialVersionUID = 1L;

public void addKeyListener(java.awt.event.KeyEvent evt) { String caracteres = "0987654321"; if (!caracteres.contains(evt.getKeyChar() + "")) { evt.consume(); } } }

Não consigo fazer funcionar, onde estou errando ?

1 resposta
solução!

Consegui....

public class JTextFieldComInteiros extends JTextField {

private static final long serialVersionUID = 1L;

public JTextFieldComInteiros() {

this.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { String caracteres = "0987654321"; if (!caracteres.contains(evt.getKeyChar() + "")) { evt.consume(); } } }); } }