Popular showInputDialog com MySql

8 respostas Resolvido
javamysql
F

Pessoal esta retornando apenas o ultimo item do Sql.
Alguém poderia me ajudar.
Preciso popular o Objeto do InputDialog.

´

String sq=select lote from estoque;;

Object[] itens ={""} ;
con.executaSQL(sq);
    try {
        con.resultset.next();
        do {
          itens=(new Object[]{ con.resultset.getObject("lote")});
                }  while (con.resultset.next());
    } catch (Exception e) {
    }
    try {
         Object Intput = JOptionPane.showInputDialog(null,null,
           "Escolha um Lote",
            JOptionPane.QUESTION_MESSAGE,null,
              itens,null);
                lote= (int) Intput; 
                 jLabel34.setText("Mostrando resultado Geral do Lote:  00"+lote+"");
    } catch (Exception e) {
    }
`

8 Respostas

4mega

Isso aqui cria um NOVO Objeto toda vez que passa por ela.

Faça mais ou menos assim:

ArrayList lista = new ArrayList();
while(con.resultset.next()){
    lista.add(con.resultset.getObject("lote"));
}
Object Intput = JOptionPane.showInputDialog(null,null,
       "Escolha um Lote",
        JOptionPane.QUESTION_MESSAGE,null,
          Arrays.toString(lista.toArray()),null);

Deve haver formas mais eficientes de informar o resultado do lote.

F

4mega tentei assim tambem. Mas InputDialog só aceita Object e não consigo fazer o parse.

4mega

Pegue os valores do Arrays e coloque em um unico Object.
Tipo:

Object dados = Arrays.toString(lista.toArray());
F

Ja tentei também o problema é que esse Object tem que ser um array tambem.
Object[] dados;

4mega

faz assim então:

Object Intput = JOptionPane.showInputDialog(null,null,
   "Escolha um Lote",
    JOptionPane.QUESTION_MESSAGE,null,
      lista.toArray(),null);
F

Minha nossa, isto também já tentei antes. kkkkkkkkkkkkkkkkkkk.

Não acredito que estou arrastando nisso.
Teoricamente meu código teria que funcionar, pois a classe inputDialog lista todo o object depois.
E o object esta populado, mas não lista este é o problema.

4mega
Solucao aceita

Estranho, pq se vc coloca este código, ele puxa os dados bem certo.
O problema esta no seu loop que adquire os dados do BD.
OU, talvez vc n tenha notado que o código q digitei la em cima é um pouco diferente do ultimo q mostrei, o lista.toArray() traz Object[].

ArrayList lista = new ArrayList();
lista.add("Teste1");
lista.add("Teste2");
lista.add("Teste3");
Object Intput = JOptionPane.showInputDialog(null, null,
       "Escolha um Lote",
        JOptionPane.QUESTION_MESSAGE, null,
        lista.toArray(), null);
F

Verdade. Esqueci de alterar o loop do BD. Desculpa cara.
Muito obrigado.

Criado 15 de dezembro de 2016
Ultima resposta 15 de dez. de 2016
Respostas 8
Participantes 2