Resultado de query em jcombobx

Ola boa tarde…estou com problema…tenho duas classes…uma gerenteBD e outra formOS…
nessa formOS coloquei um jCombobox…e gostaria de que a consulta que eu fiz no gerenteBD me desse um return de modo que no formOS no jCombobox…eu possa fazer assim:
jCombobox.addItem(gb.listaIDOS());

Como eu posso fazer isso galera???
jah fiz algumas tentativas…na ultima ele preencheu todos os codigos numa linha soh…imagino que deve ser algumo coisa com array…mas na programacao o array eh a minha criptonita.

[]'s

Um proposta elegante seria vc estender o JComboBox, e adicionar (sobrecarregar) o método addItem, só que para um array de Object.

public void addItem (Object[] itens);

Ai dentro deste método, vc coloca um for (por exemplo) e adiciona cada item com o método addItem (Object) do JComboBox.

Ai no seu formOS, vc inseri o seu ComboBox personalizado.

Blz? :wink:

como eu disse array eh a minha criptonita…
no metodo que eu fiz…listarID
ele tah assim:
isso jah dah…soh que o return esta errado, eu sei…mas naum sei como arrumar…
se alguem puder localizar o erro…

public String[] listaIDOS(){
String []ids=new String[this.nRegID()];
try{
Statement stmt=con.createStatement();
ResultSet rs=
stmt.executeQuery(“select id_os from os_cad_registros”);
int i=0;
while(rs.next()){
int id=rs.getInt(“id_os”);
ids[i]=""+id;
i++;
}
}catch(SQLException ex){
System.out.println(ex);
}
…aqui…>>> return ids[];
}

Ve se isso resolve:

public String[] listaIDOS(){
String []ids=new String[this.nRegID()];
try{
Statement stmt=con.createStatement();
ResultSet rs=
stmt.executeQuery("select id_os from os_cad_registros");
int i=0;
while(rs.next()){
int id=rs.getInt("id_os");
ids[i]=""+id;
i++;
}
}catch(SQLException ex){
System.out.println(ex);
}
return ids;
}

ele retorna…java.lang.String…e naum o valor…

acabei de perceber que o vetor naum estah adicionando o valor…o que serha que estah errado…

como vc deve saber os componentes visuais podem trabalhar com modelos de dados. nesse vc só precisar criar um modelo que se comporta da maneira que vc precisa. Dessa forma vc nao precisa mexer no componente visual…

Eu naum preciso criar um modelo para fazer isso:
jComboBox.addItem(gb.listaIDOS());

sendo que gb eh o nome da classe onde esta o listaIDOS()…
O problema eh que ha alguma coisa errada de modo que o array naum estah sendo preenchido…eh um erro no meu codigo e naum no componente…
se vc puder achar o erro, te agradeco.

public String[] listaIDOS(){ 
String []ids=new String[this.nRegID()]; 

///nRegID...pega o numero de registro para criar o array com esse numero///// 

try{ 
Statement stmt=con.createStatement(); 
ResultSet rs= 
stmt.executeQuery("select id_os from os_cad_registros"); 
int i=0; 
while(rs.next()){ 
int id=rs.getInt("id_os"); 
String idi=""+id; 
System.out.println(idi); 
ids[i++]=idi; 
System.out.println("array: "+ids[i]); 
/////coloquei para escrever e descobri que ele naum esta sendo preenchido....soh da 'array:'null ///// 
} 
}catch(SQLException ex){ 
System.out.println(ex); 
} 
return ids; 
} 

o que estou fazendo errado???

EDITADO:POR FAVOR COLOQUE SEUS CÓDIGOS DENTRO DA TAG CODE, OU APERTE O BOTÃO ACIMA “CODE” PARA QUE LELA FIQUE EM DESTAQUE E SEJA MELHOR OLHAR O CÓDIGO

ids é um array de String e o retorna é tb um array de String… então o problema é outo…

Então a sua pesquisa não está rertornando nada?

ela esta retornando…eu jah pensei nisso…
por isso tem ali uma linha assim:

ids[i++]=idi;…

System.out.println(idi);
System.out.println(“array”+ids[i]);

o resultado da impressao no console eh esse:
23
array null
24
array null…
por isso eu sei que a minha pesquisa esta certa…e o array naum esta preenchendo.