Java - problemas con el keyReleased evet

 
Vista:

problemas con el keyReleased evet

Publicado por tosto (4 intervenciones) el 30/10/2005 18:22:21
hola todos estos haciendo una aplicacion en java conectado a una base de datos.

Tengo un TextField al cual le he asignado el evento keyReleased y lo que quiero que haga es que cada vez que el usuario digite algo, esto sea comparado con el primera columna de mo JTable y despues que se muestre en la tabla los resultados que empiezan con el texto que el user ingreso, este es el codigo:

private void txt_searchCompanyKeyReleased(java.awt.event.KeyEvent evt) {

TableModel model = jt_Company.getModel();
ArrayList<String[]> dataArray = new ArrayList<String[]>();
String[] data = new String[ jt_Company.getRowCount() * 2];
String s = txt_searchCompany.getText();

for(int i = 0; i < jt_Company.getRowCount(); i++)
{
for(int j = 0; j < model.getColumnCount(); j++)
{
if(model.getValueAt(i, 1).toString().startsWith(s) == true)
{

data[i] = model.getValueAt(i, j).toString();
dataArray.add(data);


}
}
}

el problema es que cada vez que el user ingresa algo en el textfield el evento se jecuta dos veces entonces por ejemplo en el array data si encuentra 2 resultados iguales el mismo almacena cuatro ya que el evento se esta volviendo a ejecutar.

Puede alguien decirme que estoy haciendo mal, o que puedo hacer para que el metodo solo se ejecute una vez cuando el usuario digita "J", por ejemplo.

Gracias......

//jt_Company.setModel(new Business.CompanyTable(dataArray));
cb_orderByManagerCompany.setSelected(false);
cb_orderByNameCompany.setSelected(false);
cb_orderByPayCompany.setSelected(false);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder