Tenho uma caixa de texto e um botão buscar…eu escrevo um nome na caiaxa de texto e gostaraia que aparecesse na JList só as informações do nome que eu escrevi…
este nomes ficam armazenados num campo array no banco de dados…
não sei o que estou fazendo de errado, mas o meu botão buscar só imprime na JList assim: []
//meu método para buscar um nome
public ArrayList<Ramais> btnBuscar(String funcionario){
ArrayList<Ramais> colecaoDefuncionario = new ArrayList<Ramais>();
bd.conecta();
try{
comando = bd.getConexao().createStatement();
ResultSet rs = comando.executeQuery("SELECT NUMERO, FUNCIONARIO FROM RAMAIS WHERE '{" +funcionario.trim()+"}' = ANY (FUNCIONARIO)");
while (rs.next()){
Ramais r = new Ramais();
r.setCodigo(rs.getInt("codigo"));
r.setCodigoCampus(rs.getInt("campus"));
r.setSetor(rs.getString("setor"));
r.setFuncionario(rs.getString("funcionario"));
r.setNumero(rs.getString("numero"));
colecaoDefuncionario.add(r);
}
rs.close();
comando.close();
} catch (SQLException e){
e.printStackTrace();
}
bd.desconecta();
return colecaoDefuncionario;
}
//método que carrega na lista
private void carregarFuncionarios(String funcionarios){
ArrayList<Ramais> ramais = rDAO.btnBuscar(funcionarios);
modeloLista.removeAllElements();
//For (int i =0; i<ramais.size(); i++){
// modeloLista.addElement(ramais.get(i));
modeloLista.addElement(ramais);
}
//o botão buscar
if ( txtFuncionario.getText().isEmpty() )
JOptionPane.showMessageDialog(rootPane, "Informe o nome a ser pesquisado");
else{
String funcNome = txtFuncionario.getText();
carregarFuncionarios(funcNome);
}
Ahh, dai na tua classe modelo tem de sobrescrever o método toString() para que ele retorne o que vc qsr que apareça no JList
[code]@Override
public String toString() {
RamalDAO cdao = new RamalDAO();
Ramal m = new Ramal();
try {
m = cdao.getRamal(codigo);
} catch (Exception ex) {
Obrigada GelioJr, pela ajuda! Na verdade eu acabei conseguindo ontem denoite…eu estava confusa, mas no momento que organizei as idéias td fluiu…
vou colar o código, se alguém precisar algum dia…é uma duvida a menos…
Abração!!
//o método na minha classe DAO para buscar o funcionário
public ArrayList<Ramais> btnBuscar(String funcionario){
ArrayList<Ramais> colecaoDefuncionario = new ArrayList<Ramais>();
bd.conecta();
try{
comando = bd.getConexao().createStatement();
ResultSet rs = comando.executeQuery("SELECT SETOR, NUMERO, FUNCIONARIO FROM RAMAIS WHERE '" +funcionario+"' = ANY (FUNCIONARIO)");//o meu campo funcionário no BD é um array
while (rs.next()){
Ramais r = new Ramais();
r.setSetor(rs.getString("setor"));
r.setFuncionario(rs.getString("funcionario"));
r.setNumero(rs.getString("numero"));
colecaoDefuncionario.add(r);
}
rs.close();
comando.close();
} catch (SQLException e){
e.printStackTrace();
}
bd.desconecta();
return colecaoDefuncionario;
}
//método que carrega os funcionários no JList
private boolean carregarFuncionarios(String funcionarios) {
ArrayList<Ramais> ramais = rDAO.btnBuscar(funcionarios);
modeloLista.removeAllElements();
for (int i = 0; i < ramais.size(); i++) {
modeloLista.addElement(ramais.get(i));
}
//modeloLista.addElement(ramais);
if (ramais.size() > 0) {
return true;
} else {
return false;//se o funcionário não existir
}
//o botão buscar
private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {
if (txtFuncionario.getText().isEmpty()) {
JOptionPane.showMessageDialog(rootPane, "Informe o nome a ser pesquisado");
} else {
String funcNome = txtFuncionario.getText();
if (!carregarFuncionarios(funcNome)) {
JOptionPane.showMessageDialog(rootPane, "Este funcionário não está cadastrado");
}
txtFuncionario.setText(null);
}
}
//meu método toString da classe Ramais.java que retorna as informações que são impressas na lista
@Override
public String toString(){
return ("-->SETOR: "+this.getSetor()+" FUNCIONÁRIO(S): "+this.getFuncionario()+" RAMAL: "+this.getNumero().trim())+"\n";
}
derrepente falte alguma validação, mas basicamente é isso ai…