Olá a todos,
não consigo ordenar:
if (command == cListarCadTurma){
listaUpdCadTurma.deleteAll();
ComparadorCodigo comparador = new ComparadorCodigo();
listarRegistros(null,comparador);
}
private void listarRegistros(FiltroCodigo f, ComparadorCodigo c){
RecordEnumeration rEnum = null;
vecNomes.removeAllElements();
try{
rEnum = rsCadTurma.enumerateRecords(f,c,false);
int posicao = 0;
while(rEnum.hasNextElement()){
int id = rEnum.nextRecordId();
byte[] dados = rsCadTurma.getRecord(id);
ByteArrayInputStream BAIS = new ByteArrayInputStream(dados);
DataInputStream DIS = new DataInputStream(BAIS);
int codigoLido = DIS.readInt();
String nomeLido = DIS.readUTF();
NomesCadTurma itemAgenda = new NomesCadTurma(codigoLido, nomeLido, id, posicao);
vecNomes.addElement(itemAgenda);
posicao++;
}
gerarTela(vecNomes,rEnum.numRecords());
}
catch (Exception exc) {
mostrarAlerta(“Erro na listagem”,exc.toString());
}
finally {
rEnum.destroy();
}
}
class FiltroCodigo implements RecordFilter {
String nome;
int codigo;
public FiltroCodigo(int codigoFiltrado) {
codigo = codigoFiltrado;
}
public boolean matches(byte [] registro) {
try{
ByteArrayInputStream BAIS = new ByteArrayInputStream(registro);
DataInputStream DIS = new DataInputStream(BAIS);
int codigoLido = DIS.readInt();
String nomeLido = DIS.readUTF();
DIS.close();
BAIS.close();
if (codigo == codigoLido)
return true;
}
catch (Exception exc) {
mostrarAlerta(“Erro FiltroNome”, exc.toString());
}
return false;
}
}
class ComparadorCodigo implements RecordComparator {
public int compare(byte [] reg1, byte [] reg2) {
try{
ByteArrayInputStream BAIS = new ByteArrayInputStream(reg1);
DataInputStream DIS = new DataInputStream(BAIS);
int codigoLido1 = DIS.readInt();
DIS.close();
BAIS.close();
ByteArrayInputStream BAIS2 = new ByteArrayInputStream(reg2);
DataInputStream DIS2 = new DataInputStream(BAIS2);
int codigoLido2 = DIS.readInt();
DIS2.close();
BAIS2.close();
if (codigoLido1 < codigoLido2){
return PRECEDES;
}
if (codigoLido1 > codigoLido2){
return FOLLOWS;
}
if (codigoLido1 == codigoLido2){
return EQUIVALENT;
}
}
catch (Exception exc) {
System.out.println("Exceção: " + exc.getMessage());
}
return EQUIVALENT;
}
}