Resolvi de outra maneira,
Realmente não consegue cancelar o evento, me parece que o consume() apenas pode ser utilizado em InputEvent, e ele consume o evento mesmo, tipo, se vc cancela um tipo de InputEvent, os ouvintes do seus InputEvent deixam de receber os evento, me corrijam se eu estiver errado.
Então inventei uma gambiarrazinha na minha classe, se interessar a alguém:
package zcm.swing;
import java.awt.Color;
import java.awt.Component;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.util.HashMap;
import java.util.Set;
import javax.swing.Icon;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;
/**
*
* @author Desenvolvimento
*/
public class ZErrorLabel extends javax.swing.JLabel {
private Border bordaNormal;
private Border bordaErro;
private boolean isInValidation=false;
private HashMap<JComponent,String> listaErros;//HashMap com os componentes mapeando as mensagens - (sem ordem)
private FocusListener focusListener;
public void setBordaErro(Border bordaErro) {
this.bordaErro = bordaErro;
}
public void setBordaNormal(Border bordaNormal) {
this.bordaNormal = bordaNormal;
}
public ZErrorLabel() {
super();
configuraZErrorLabel();
}
public ZErrorLabel(Icon image) {
super(image);
configuraZErrorLabel();
}
public ZErrorLabel(Icon image, int horizontalAlignment) {
super(image, horizontalAlignment);
configuraZErrorLabel();
}
public ZErrorLabel(String text) {
super(text);
configuraZErrorLabel();
}
public void configuraZErrorLabel(){
initComponents();
listaErros = new HashMap<JComponent, String>();
focusListener = new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
ZErrorLabel.this.setText(listaErros.get(e.getSource()));
isInValidation=false;
}
};
//Define bordas padrões
bordaErro = new LineBorder(new Color(255, 100, 100));
bordaNormal = (new JTextField()).getBorder();
}
public boolean componenteTemErro(JComponent c){
return listaErros.get(c) != null;//Retorna se o erro associado ao componente é nulo
}
public String addError(JComponent componente, Component opositeComponente, String mensagem) {
if (listaErros.containsKey(componente)) {
return "Erro já cadastrado";
} else {
isInValidation =true;
this.setVisible(true);
this.setText(mensagem);
String iretorno = listaErros.put(componente, mensagem);
//c.removeFocusListener(focusListener);//Removo o listener para evitar que exista mais de um
//REtira os ouvintes de foco do componente oposto para que o foco volte para o campo sem maiores problemas
componente.setBorder(bordaErro);
if (!listaErros.containsKey(opositeComponente)) componente.requestFocusInWindow();//Só requere o foco caso o componente oposto não esteja em
componente.addFocusListener(focusListener);
return iretorno;
}
}
public void removeAllErrors() {
Set<JComponent> set = listaErros.keySet();
for (JComponent c : set) {
c.setBorder(bordaNormal);
c.removeFocusListener(focusListener);
this.setVisible(true);
this.setText("");
}
listaErros.clear();
}
public String removeError(JComponent c) {
if (listaErros.containsKey(c)) {
c.setBorder(bordaNormal);
this.setVisible(false);
String iRetorno = listaErros.remove(c);
c.removeFocusListener(focusListener);
if (!(listaErros.isEmpty())) {
this.setVisible(true);
this.setText("");
}
return iRetorno;
}
return "Elemento não adicionado";
}
public boolean verificaError(boolean conditionError, JComponent componente, Component opositeComponente, String msg){
if(isInValidation==false){
this.setText("");
if (conditionError==true){
addError(componente,opositeComponente, msg);
return true;
}
removeError(componente);
}
return false;
}
//False se não houver erros
public boolean existeErros(){
if (listaErros.isEmpty()) return false;
else{
}
return true;
}
public void mostraMensagemPadrao(Component c){
JOptionPane.showMessageDialog(c, "Existem campos com erros!\nOs campo errados estão destacados, você deve corrigí-los e então tentar salvar novamente.\nVocê pode ver qual é o erro clicando no campo destacado", "Campos Inválidos", JOptionPane.WARNING_MESSAGE);
}
@SuppressWarnings("unchecked")
private void initComponents() {
setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagens/erroValidacao.png"))); // NOI18N
}
}