Problemas com JComboBox e resultado do banco de dados

5 respostas
J

Bem pessoal, meu problema é o seguinte.
na aplicação tenho um jcombo que recebe uma consulta da base e mostra como item os eventos dos vários cliente. quando escolho o evento quero que mostre nos JTextField o cliente responsável pelo evento escolhido. na base de dados a tabela evento tem o codigo do cliente.
a principio o codigo é o seguinte

comboEventos = new JComboBox();
			try
			{
				Class.forName("com.mysql.jdbc.Driver");
				con = DriverManager.getConnection("jdbc:mysql://ip/local?user=djdjdjd&password=oooooo");
				Statement st = con.createStatement();
				ResultSet rs = st.executeQuery("Select * from cd_eventos");
				
				while (rs.next())
				{
					comboEventos.addItem( rs.getString("NOME") );					
				}
				comboEventos.addItem( vetorEventos.elements() );
				rs.close();
				st.close();
			}
			catch(Exception e)
			{
				System.err.print("erroeeeeee");
			}
			getContentPane().add(comboEventos);

			comboEventos.setBounds(74, 6, 352, 25);
			comboEventos.addActionListener( new ActionListener()
			{
				public void actionPerformed( ActionEvent evt)
				{
					if (iniciaCombo == 1)
					{
						try
						{
							Class.forName("com.mysql.jdbc.Driver");
							con = DriverManager.getConnection("jdbc:mysql://ip/local?user=djdjdjd&password=oooooo");
							Statement st = con.createStatement();
							String query = "Select ID_CLIENTE, RAZAOSOCIAL from cd_clientes where ID_CLIENTE = " + comboEventos.getSelectedIndex();
							ResultSet rs = st.executeQuery(query);
							textCliente.setText(rs.getString("RAZAOSOCIAL"));
							rs.close();
							st.close();
							textHost.setEnabled(true);
							textPorta.setEnabled(true);
							buttonIniciaServico.setEnabled(true);
						}
						catch(Exception e)
						{
							System.err.print("erro");
						}
					}
					iniciaCombo = 1;
				}
			}
			);
		}
	}

5 Respostas

tivrfoa

blz, mas e ae…
tá dando erro?
aonde?

J

não transfere o resultado para os JTextField…

tivrfoa

muda para o seguinte:

...
ResultSet rs = st.executeQuery(query);  
rs.next();
textCliente.setText(rs.getString("RAZAOSOCIAL"));
...
J

meu problema é o seguinte…
preciso que retorne da combo o codigo do cliente do evento para poder consultar na tabela evento.
só que na combo, tem que mostrar apenas os nomes dos eventos.

berg.pb

Humm…
Passei por algo parecido há algum tempo.

O que eu fiz: coloquei todo mundo num ArrayList. Porém, para o combo, coloquei somente o Nome do Cliente. Qdo mudava, no combo, o cliente, fazia uma pesquisa no Array, e preenchia os textsfields com os dados capatados no ArrayList.

Ou…

Vc pode, a cada mudança no array, pegar o código do cliente presente no array, e fazer uma nova pesquisa no bco… mas acho que, assim, é fazer o trabalho 2x.

Abraços
Boa sorte

Criado 12 de março de 2009
Ultima resposta 16 de mar. de 2009
Respostas 5
Participantes 3