nel, não fui muito claro vou tentar explicar melhor
eu tenho um JComboBox que exibe uma lista de funcionarios que estão em atendimento
Eu deixei a lista pra vir assim
id => data | usuario | departamento | resumo | problema
onde ficaria assim
14 => 21 de fevereiro de 2012 | tiago | TI | teste | software
eu preciso pegar o 14 para ou qualquer numero que apareça no id, pois nele eu uso de base para buscar no bando de dados e setar as informações na tela…
o código do JComboBox que funcionava antes era assim:
String codigo = "";
int id = 0;
codigo = (String)cbx_EmAtendimento.getSelectedItem(); // o item selecionado vira String
if (cbx_EmAtendimento.getSelectedItem()!= null)
{
id = Integer.parseInt(codigo.substring(0,2));
try {
String sql = "SELECT * FROM ocorrencias WHERE id = "+id;
manu.st = manu.connection.createStatement();
manu.rs = manu.st.executeQuery(sql);
if (manu.rs.next())
{
tx_Contato.setText(manu.rs.getString("contato"));
tx_Data_Resgistrada.setText(manu.rs.getString("data"));
tx_Depart.setText(manu.rs.getString("departamento"));
tx_Problema.setText(manu.rs.getString("problema"));
tx_Ramal.setText(manu.rs.getString("ramal"));
tx_Resumo.setText(manu.rs.getString("resumo"));
tx_Status.setText(manu.rs.getString("status"));
tx_Solicitante.setText(manu.rs.getString("solicitante"));
txa_Desc.setText(manu.rs.getString("descricao"));
tx_Cod.setText(manu.rs.getString("id"));
lbl_ApareceNome.setText(manu.rs.getString("responsavel"));
}
}catch(SQLException erro){
erro.printStackTrace();
}
}
else
{
tx_Contato.setText("");
tx_Data_Resgistrada.setText("");
tx_Depart.setText("");
tx_Problema.setText("");
tx_Ramal.setText("");
tx_Resumo.setText("");
tx_Status.setText("");
tx_Solicitante.setText("");
txa_Desc.setText("");
tx_Cod.setText("");
lbl_ApareceNome.setText("");
}
}
});
só que ele pegaria os dois primeiros valores ou seja de 10 a 99
quando aparecesse um funcionario em atendimento com o codigó 2 ou 112
daria erro …
ai eu tente implementar esse while:
String codigo = "";
int id = 0;
codigo = (String)cbx_EmAtendimento.getSelectedItem(); // o item selecionado vira String
if (cbx_EmAtendimento.getSelectedItem()!= null)
{
int i = 5; // representa 99.999 em inteiro no substring
boolean inteiro = false; // supondo que o id pegado seja false
while(inteiro == false)
{
id = Integer.parseInt(codigo.substring(0,i)); //pega os 5 primeiros caracteres
if (id / id == 1){//se o id for divisivel por ele mesmo e um numero inteiro entao retorne true
inteiro = true; // sai do loop while
}
i--; // se nao diminua um do i pra usar no substring
}
try {
String sql = "SELECT * FROM ocorrencias WHERE id = "+id;
manu.st = manu.connection.createStatement();
manu.rs = manu.st.executeQuery(sql);
if (manu.rs.next())
{
tx_Contato.setText(manu.rs.getString("contato"));
tx_Data_Resgistrada.setText(manu.rs.getString("data"));
tx_Depart.setText(manu.rs.getString("departamento"));
tx_Problema.setText(manu.rs.getString("problema"));
tx_Ramal.setText(manu.rs.getString("ramal"));
tx_Resumo.setText(manu.rs.getString("resumo"));
tx_Status.setText(manu.rs.getString("status"));
tx_Solicitante.setText(manu.rs.getString("solicitante"));
txa_Desc.setText(manu.rs.getString("descricao"));
tx_Cod.setText(manu.rs.getString("id"));
lbl_ApareceNome.setText(manu.rs.getString("responsavel"));
}
}catch(SQLException erro){
erro.printStackTrace();
}
}
else
{
tx_Contato.setText("");
tx_Data_Resgistrada.setText("");
tx_Depart.setText("");
tx_Problema.setText("");
tx_Ramal.setText("");
tx_Resumo.setText("");
tx_Status.setText("");
tx_Solicitante.setText("");
txa_Desc.setText("");
tx_Cod.setText("");
lbl_ApareceNome.setText("");
}
}
});
pra tentar pegar o valor certo do id não importando o tamanho que aparecesse…
espero que tenham entendido pois n sou muito bom pra explicar rssss