Validar Campos JTable

Olá, bom dia.
Estou com um problema na validação de campos de meu JTable.

Preciso fazer com que o cara, ao editar um campo texto, caso ele digite algo errado, o foco volte para o editor.

Já andei pesquisando, já tentei adicionar TableModelListener na classe Model que criei, mas ainda não obtive muito êxito.

E aí, alguém p m indicar uma direção?

Obrigado.
Abraços

Tentei extender um InputVerifier, fiz igual a um tutorial que peguei:

public class ValidaCelulaTeste extends InputVerifier{
 
    public boolean verify(JComponent input) {
        JTextField tf = (JTextField) input;
        if(tf.getText().equals(""))        {
            input.setInputVerifier(null);
            JOptionPane.showMessageDialog(null,"Campo vazio.  Informe-o.");            
            input.setInputVerifier(this);
            tf.requestFocus();
            return false;
        }
        return true;
    }
}

Mas, na hora de ele voltar o foco para o Editor, ele sai do “modo edição”.

Alguém dá uma mão!
Vlwz.

Consegui resolver o problema em manter a célula em modo de edição, porém o cursor não vai para a célula.
O código não tem nada a ver com o de cima, é um totalmente novo.
Alguém sabe como eu colocaria o cursos posicionado na célula?

public class EditoresGrid extends DefaultCellEditor{
    private CampoTexto campoTexto;
    private JTable grid;
    
    public EditoresGrid(CampoTexto t,JTable grid){
        super(t);
        campoTexto = t;
        this.grid=grid;
    }    

    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {                
        campoTexto.setTexto(value.toString());
        
        if (isSelected)
            campoTexto.selectAll(); 
        return campoTexto;
       
    }  
    public Object getCellEditorValue() {
        if(!campoTexto.isEmpty()){
            try {
                return campoTexto.getTexto();
            }
            catch(Exception e) {
                
            }
        }
        else{
           
        }
       return "";
    } 
    public boolean stopCellEditing() {
        if(campoTexto.isEmpty()) {
            fireEditingCanceled();
            JOptionPane.showMessageDialog(null,"A célula não pode ficar em branco.");
            campoTexto.requestFocus();
            
            /*Mantém em modo de edição a célula que está pendente de entrada de texto*/            
            boolean success = grid.editCellAt(grid.getSelectedRow(), grid.getSelectedColumn());
            if (success) {
                boolean toggle = false;
                boolean extend = false;
                grid.changeSelection(grid.getSelectedRow(), grid.getSelectedColumn(), toggle, extend);
            } else {
                // célula nao é editada
            }          
            
            return false;
        }
        return super.stopCellEditing();
    }
}

Já acertei.
só movi o requestFocus p dentro do IF…

=D

Eu admiro esse espirito de “auto-cooperação” dos usuários do fórum ^^