Retirar dados do mysql usando combobox

5 respostas
gabi-sch

OI;

é a primeira vez que eu faço uma pergunta em fórum, eu estou até um pouco perdida ainda
só que eu preciso urgentemente saber como se retira dados do BD mysql usando combobox, eu estou começando a usar java
e estou desesperada!

Pra entender melhor: estou desenvolvendo um software pra uma oficina mecânica; aí eu tenho a tabela pessoa que armazena o nome da pessoa
e a tabela mecanico que armazena os dados do mecânico com execessão do seu nome que já foi cadastrado na tabela pessoa; por isso
eu queria fazer um combobox pra poder escolher o nome do mecânico quando estou fazendo o cadastro do mesmo. Não sei se deu pra entender…

O código que eu usei está abaixo, mas eu não dá certo, e não aparece nehuma mensagem de erro ¬¬

package Mecânico;

import java.awt.BorderLayout;

import java.awt.Component;

import java.awt.ItemSelectable;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.EventObject;
import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JTextArea;
public class Combo extends NFrame

{

static JTextArea Ta ;

private static int state;
static private String selectedString(ItemSelectable is)

{

Object selected[] = is.getSelectedObjects();

return ((selected.length == 0) ? null : (String) selected[0]);

}

public static void main(String args[])

{
if(state==ItemEvent.SELECTED)
{
	ResultSet rs;
	Statement MeuState ;
	Ta.setText("");
	String url = "jdbc:mysql://localhost/Benz";
	try
	{
		 Class.forName("com.mysql.jdbc.Driver");
		 Connection Conexao = DriverManager.getConnection(url);
		 MeuState = Conexao.createStatement();
		String SQL = "SELECT * FROM mecanico";
		rs = MeuState.executeQuery(SQL);
		rs.next();
		
		for(int x=0;x<4;x++)
		{
			String E = rs.getString("pessoa_id_pessoa");
			rs.next();	
			
			String labels[] = {  E = rs.getString("pessoa_id_pessoa") };
		    JFrame frame = new JFrame("Selecting JComboBox");
		    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		    JComboBox comboBox = new JComboBox(labels);
		    frame.add(comboBox, BorderLayout.SOUTH);
		}  
		rs.close();	
	}
	catch(ClassNotFoundException ex)
	{
		JOptionPane.showMessageDialog(null,"Driver  não encontrado ","Mensagem",1);
		System.exit(0);
	}
	catch(SQLException ex)
	{
		JOptionPane.showMessageDialog(null, "Erro de SQL","Mensagem",1);
		System.exit(0);
	}
	 	
}

ItemListener itemListener = new ItemListener() 
{
  public void itemStateChanged(ItemEvent itemEvent) 
  {
    int state = itemEvent.getStateChange();
    System.out.println((state == ItemEvent.SELECTED) ? "Selected" : "Deselected");
    System.out.println("Item: " + itemEvent.getItem());
    ItemSelectable is = itemEvent.getItemSelectable();
	System.out.println(", Selected: " + selectedString(is));
  }
};
//frame.setSize(400, 200);

//frame.setVisible(true);

}
}

Se alguém puder me ajudar eu vou agradecer muito, porque já estou a alguns dias fazendo isso e não evoluí nada…
Agradeço desde já quem puder me ajudar!!

5 Respostas

Tiburcio_Mancha

Teria como formatar o código para podermos analisar melhor para vc…vc disse que é nova forum, entaum, manda o código entr as tags , qua facilita pra gente poder te ajudar…aguarod o seu novo reenvio…

abelgomes

colocando na tag code que é assim [ code ] [ /code ]
sem os espaços

package Mecânico;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.ItemSelectable;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.EventObject;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class Combo extends NFrame
{
static JTextArea Ta ;
private static int state;

static private String selectedString(ItemSelectable is)
{
Object selected[] = is.getSelectedObjects();
return ((selected.length == 0) ? "null" : (String) selected[0]);
}
public static void main(String args[])
{



if(state==ItemEvent.SELECTED)
{
ResultSet rs;
Statement MeuState ;
Ta.setText("");
String url = "jdbc:mysql://localhost/Benz";
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection Conexao = DriverManager.getConnection(url);
MeuState = Conexao.createStatement();
String SQL = "SELECT * FROM mecanico";
rs = MeuState.executeQuery(SQL);
rs.next();

for(int x=0;x<4;x++)
{
String E = rs.getString("pessoa_id_pessoa");
rs.next();

String labels[] = { E = rs.getString("pessoa_id_pessoa") };
JFrame frame = new JFrame("Selecting JComboBox");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JComboBox comboBox = new JComboBox(labels);
frame.add(comboBox, BorderLayout.SOUTH);
}
rs.close();
}
catch(ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null,"Driver não encontrado ","Mensagem",1);
System.exit(0);
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, "Erro de SQL","Mensagem",1);
System.exit(0);
}

}

ItemListener itemListener = new ItemListener()
{
public void itemStateChanged(ItemEvent itemEvent)
{
int state = itemEvent.getStateChange();
System.out.println((state == ItemEvent.SELECTED) ? "Selected" : "Deselected");
System.out.println("Item: " + itemEvent.getItem());
ItemSelectable is = itemEvent.getItemSelectable();
System.out.println(", Selected: " + selectedString(is));
}
};
//frame.setSize(400, 200);
//frame.setVisible(true);

}
}
abelgomes

é o seguinte Gabi, vc usa um Vector para representar o seu combo…e depois sim vc add o Vector nele…fica bem mais facil…

rs = MeuState.executeQuery(SQL);

Vector opcoes = new Vector();

while(rs.next()){
  opcoes.add(rs.getString("seucampo"));//se nao for add é um outro parecido
}

//assim vc preenheu suas opcoes...agora é so add no combo
JComboBox comboBox = new JComboBox(opcoes);//aqui

pronto…qualquer coisa fala ai :wink:

gabi-sch

mto obrigada pela dica ;D
ainda estou tentando resolver, porque esse final de semana não me restou mto tempo…
mas vlw aí pela dica, mais uma vez!!

gabi-sch

aê consegui resolver ;D
nem acredito…
ainda bem que tive ajuda ;D
vlw aê, mais uma vez!!

Criado 4 de dezembro de 2008
Ultima resposta 9 de dez. de 2008
Respostas 5
Participantes 3