Olá a todos. Gostaria de saber dos colegas como eu faço para limitar o nº de caracteres dentro de uma célula de um JTable.
Por exemplo, tenho que permitir no máximo que o usuário digite 5 caracteres dentro de uma célula.
Já pesquisei mas não encontrei nada que sanasse minha dúvida.
Grato pela atenção.
O exemplo que está no Java Tutorial é uma limitação para poder entrar só um valor de 0 até 100. Você pode mudar essa validação que ele faz para limitar para 5 caracteres, que é o que você quer.
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#validtext
Basicamente você tem de olhar os fontes TableFTFEditDemo.java e IntegerEditor.java.
Em vez disso, eu recomendaria usar o Glazed Lists, http://www.publicobject.com/glazedlists/ , porque embora ele não faça validações, ele faz todas as outras coisas que você normalmente precisa fazer com JTables.
O que já consegui fazer foi isso:
Quando eu clico com o mouse em uma célula…
private void tabelaMouseClicked(java.awt.event.MouseEvent evt) {
int coluna = 1;
o = tabela.getValueAt(tabela.getSelectedRow(), tabela.getSelectedColumn());
}
e no evento LostFocus da tabela…
if(o.toString().length() > 9){
JOptionPane.showMessageDialog(null, "MAior...");
System.out.println(o.toString().length());
}
System.out.println("" + o);
Só que isso só funciona se eu der 2 cliques da célula… ai sim o tamanho dela é verificado.
Estava querendo que fosse verificado quando eu clucasse em outra célula qualquer.