Estou com um problema que precisa ser solucionado o mais rápido possível. O problema é que eu estou desenvolvendo um programinha que utiliza uma técnica de IA. O usuário entra com os dados que são comparados com o banco de dados de Doenças de Soja e informa, em uma JTable, os valores mais parecidos com as informações contidas nos JComboBox na tela. Porém, após a pesquisa, quando tento selecionar uma linha na tabela, os seus valores são zerados. Como eu posso fazer para que esses dados não sejam alterados? A seguir, uma parte do código-fonte. Se alguém puder me ajudar, eu fico muito agradecido pela atenção.
public void getTableAtrib()
{
ResultSet result;
try
{
PreparedStatement ps=connection.prepareStatement(
"SELECT Cod_case as CASO, Cod_doenca as DOENÇA, Desc_doenca as DESCRIÇÃO, PercAtribVal as SIMILARIDADE, CONFIABILIDADE "+
"FROM MelhoresCasos "+
"ORDER BY PercAtribVal DESC");
result= ps.executeQuery();
displayResultSet (result);
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, "Erro2: "+ex);
}
}
public void getTableDisc()
{
ResultSet result;
try
{
PreparedStatement ps=connection.prepareStatement(
"SELECT Cod_case as CASO, Cod_doenca as DOENÇA, Desc_doenca as DESCRIÇÃO, PercDiscVal as SIMILARIDADE, CONFIABILIDADE "+
"FROM MelhoresCasos "+
"ORDER BY PercDiscVal DESC");
result= ps.executeQuery();
displayResultSet (result);
}
catch (SQLException ex)
{
JOptionPane.showMessageDialog(null, "Erro2: "+ex);
}
}
public void displayResultSet (ResultSet r) throws SQLException
{
boolean moreRecords = r.next ();
if (! moreRecords)
{
JOptionPane.showMessageDialog(this, "Registro inválido");
setTitle ("Registros Vazios");
return;
}
Vector columnHeads= new Vector ();
Vector rows= new Vector ();
int k=1;
try
{
ResultSetMetaData rsmd= r.getMetaData();
for (int i=1; i<=rsmd.getColumnCount(); i++)
{
columnHeads.addElement(rsmd.getColumnName(i));
}
do
{
rows.addElement (getNextRow (r, rsmd));
if (k++==5)
break;
} while (r.next ());
table= new JTable (rows, columnHeads);
JScrollPane scroll= new JScrollPane (table);
panel3.add (scroll, BorderLayout.CENTER);
validate ();
}
catch (SQLException ex)
{
ex.printStackTrace();
}
}
private Vector getNextRow (ResultSet r, ResultSetMetaData rsmd)
throws SQLException
{
Vector currentRow= new Vector ();
for (int i=1; i<=rsmd.getColumnCount();i++)
{
switch(rsmd.getColumnType(i))
{
case Types.VARCHAR:
currentRow.addElement (r.getString(i));
break;
case Types.INTEGER:
currentRow.addElement(new Integer (r.getInt(i)));
break;
case Types.DOUBLE:
currentRow.addElement(formato.format(new Double (r.getDouble(i))));
break;
default:
System.out.println("Tipo dos dados: "+
rsmd.getColumnTypeName(i));
}
}
return currentRow;
}
