JComboBox

5 respostas
I

Tenho um método que devolve um JComboBox preenchido.

jComboBox1 = preencheComboBox();
System.out.println(""+jComboBox1.selectedItem());

O preencheComboBox() tá funcionando perfeitamente, tanto é que no system.out.println() imprime certinho. Porém não aparece nenhum item quando ‘rodo’ o programa no jComboBox. O que será q está acontecendo? O que devo fazer para aparecerem os itens?

Grato

5 Respostas

andredeividi
JcomboBox.addItem("teste");

assim vc adiciona valor no seu combo.

I
isso! o meu método é o seguinte:
public JComboBox preencheComboBox(){
   JComboBox combo = new JComboBox();
   ResultSet sr = statement.executeQuery("SELECT nome FROM Produto");
   while (sr.next()){
         String coluna = sr.getString("nomeProduto");
         combo.addItem(coluna);
    }
    return combo;
}

Aí na minha outra classe faço:

[code] jComboBox1 = preencheComboBox(); [code]

Porém na interfacé gráfica não aparece nada!
e se eu selecionar por exemplo o item 1, me retorna certinho.

O q tá dando errado? Já tentei até o repaint().
Grato

Link_pg

olá!

tenta assim:

public void preencheComboBox(JComboBox combo){
    if(combo==null){
        return;
    } else{
        ResultSet sr = statement.executeQuery("SELECT nome FROM Produto");
        while (sr.next()){
            String coluna = sr.getString("nomeProduto");
            combo.addItem(coluna);
        }
    }
}

dai quando for usar o método, você passa o combo desejado como parametro…

preencheComboBox(comboQueSeDesejaPreencher);

abraços

I

Estou tentando exatamente do jeito acima, e está dando erro:

public void preencheComboBox(JComboBox combo){
		ResultSet sr;
		if (combo == null)
			return;
		else {
			try {
				sr = statement.executeQuery("SELECT nomeProduto FROM Estoque");
				while (sr.next()) {
					String nome = sr.getString("NomeProduto");
					combo.addItem(nome);
				}
			}
			catch (SQLException e1) {
						// TODO Auto-generated catch block
					e1.printStackTrace();
			}
		}
	}
}

E tá dando o seguinte erro, não estou entendendo o pq:

java.sql.SQLException: Operation not allowed after ResultSet closed
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
	at com.mysql.jdbc.ResultSet.checkClosed(ResultSet.java:655)
	at com.mysql.jdbc.ResultSet.next(ResultSet.java:7302)
	at Interface.ConexaoBD.preencheComboBox(ConexaoBD.java:203)
	at Interface.frameEntrada.initComponents(frameEntrada.java:250)
	at Interface.frameEntrada.<init>(frameEntrada.java:25)
	at Interface.frameEntrada$5.run(frameEntrada.java:279)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Vale dizer que tenho 5 registros em minha tabela Estoque da base de dados. O primeiro registro é preenchido no JComboBox, já no segundo, ocorre o erro.

Eu não estou ‘fechando o ResultSet’ nem finalizando o bloco. Alguém ajuda?

Link_pg

ola!

que estranho, essa mensagem de erro só aparece quando se da um close() ou no ResultSet ou no Statement e tenta fazer alguma operação com o ResultSet… procura ver se você não fechou (chamou o método close()) algum dos dois…

abraços

Criado 14 de junho de 2007
Ultima resposta 17 de jun. de 2007
Respostas 5
Participantes 3