Capturar dados e salvar no BD

7 respostas
B

Olá!
Gostaria de saber o que está errado neste código.
Nesta tela eu tenho 3 ComboBox e 2 TextField, sendo que um deles é Float.
Os dados do ComboBox aparecem normalmente na tela, porém quando clico em salvar, dá erro.
Segue abaixo o código, e abaixo do código, os erros.
Desde já agradeço.

código:

public class TelaCadastrarPrecos extends JFrame {

super("SCPMEL - Cadastrar Precos");

            private JLabel jlCadPreco, jlFornec, jlCodMat, jlTipo, jlMarca, jlPrecoUnit;
private JButton jbSalvar, jbVoltar, jbLimpar;
private JTextField jtCadPreco, jtMarca, jtPrecoUnit; 
private JComboBox jcTipo, jcFornec, jcMaterial;
String cnpj;
String material;

Connection conn = null;

public TelaCadastrarPrecos() {


                            jlCadPreco = new JLabel();
	jlFornec = new JLabel();
	jlCodMat = new JLabel();
	jlTipo = new JLabel();
	jlMarca = new JLabel();
	jlPrecoUnit = new JLabel();
	jcFornec = new JComboBox();
	jcMaterial = new JComboBox();
	jcTipo = new JComboBox();
	jtMarca = new JTextField();
	jtPrecoUnit = new JTextField();
	jbSalvar = new JButton(salvar);
	jbVoltar = new JButton(voltar);


	setBackground(new java.awt.Color(204, 204, 255));
	setLayout(null);

	jlCadPreco.setFont(new java.awt.Font("Comic Sans MS", 3, 30));
	jlCadPreco.setForeground(new java.awt.Color(0, 102, 204));
	jlCadPreco.setText("Cadastrar Preços");
	add(jlCadPreco);
	jlCadPreco.setBounds(250, 40, 500, 50);

	jlFornec.setFont(new java.awt.Font("Comic Sans MS", 2, 16));
	jlFornec.setForeground(new java.awt.Color(0, 102, 204));
	jlFornec.setText("Fornecedor (CNPJ):");
	add(jlFornec);
	jlFornec.setBounds(40, 180, 280, 30);

	jcFornec.setFont(new java.awt.Font("Trebuchet", 1, 14));
	add(jcFornec);
	jcFornec.setBounds(200, 180, 300, 30);
	jcFornec.setMaximumRowCount(4);
	preencherComboFornec();

	jlCodMat.setFont(new java.awt.Font("Comic Sans MS", 2, 16));
	jlCodMat.setForeground(new java.awt.Color(0, 102, 204));
	jlCodMat.setText("Material:");
	add(jlCodMat);
	jlCodMat.setBounds(40, 230, 150, 30);

	jcMaterial.setFont(new java.awt.Font("Trebuchet", 1, 14));
	add(jcMaterial);
	jcMaterial.setBounds(200, 230, 300, 30);
	jcMaterial.setMaximumRowCount(10);
	preencherComboMaterial();


	jlTipo.setFont(new java.awt.Font("Comic Sans MS", 2, 16));
	jlTipo.setForeground(new java.awt.Color(0, 102, 204));
	jlTipo.setText("Tipo:");
	add(jlTipo);
	jlTipo.setBounds(40, 280, 150, 30);

	jcTipo.setFont(new java.awt.Font("Trebuchet", 1, 14));
	add(jcTipo);
	jcTipo.setBounds(200, 280, 200, 30);
	jcTipo.setMaximumRowCount(4);
	preencherComboTipo();

	jlMarca.setFont(new java.awt.Font("Comic Sans MS", 2, 16));
	jlMarca.setForeground(new java.awt.Color(0, 102, 204));
	jlMarca.setText("Marca:");
	add(jlMarca);
	jlMarca.setBounds(40, 330, 250, 30);

	jtMarca.setFont(new java.awt.Font("Trebuchet", 1, 14));
	add(jtMarca);
	jtMarca.setBounds(200, 330, 200, 30);

	jlPrecoUnit.setFont(new java.awt.Font("Comic Sans MS", 2, 16));
	jlPrecoUnit.setForeground(new java.awt.Color(0, 102, 204));
	jlPrecoUnit.setText("Preço Unitário:");
	add(jlPrecoUnit);
	jlPrecoUnit.setBounds(40, 380, 250, 30);

	jtPrecoUnit.setFont(new java.awt.Font("Trebuchet", 1, 14));
	add(jtPrecoUnit);
	jtPrecoUnit.setBounds(200, 380, 100, 30);

	jbSalvar.setFont(new java.awt.Font("Comic Sans MS", 0, 14));
	add(jbSalvar);
	jbSalvar.setToolTipText("Salvar");
	jbSalvar.setBounds(30, 30, 40, 35);
	jbSalvar.setBackground(Color.LIGHT_GRAY);
	jbSalvar.addActionListener(new java.awt.event.ActionListener() {
		public void actionPerformed(java.awt.event.ActionEvent evt) {
			jbSalvarActionPerformed(evt);
		}
	});

	jbVoltar.setFont(new java.awt.Font("Comic Sans MS", 0, 14));
	add(jbVoltar);
	jbVoltar.setToolTipText("Retornar para a tela Fornecedor");
	jbVoltar.setBounds(80, 30, 40, 35);
	jbVoltar.setBackground(Color.LIGHT_GRAY);
	jbVoltar.addActionListener(new java.awt.event.ActionListener() {
		public void actionPerformed(java.awt.event.ActionEvent evt) {
			jbVoltarActionPerformed(evt);
		}
	});
	UIManager.put("ToolTip.background", Color.pink);
	addWindowListener( new WindowAdapter() {
    	public void windowClosing( WindowEvent e ) {
    		System.exit( 0 );
    	}
    });



}
public void jbSalvarActionPerformed( ActionEvent e) {
	if( jtMarca.getText().equals("") ||
		jtPrecoUnit.getText().equals("") ) {
	JOptionPane.showMessageDialog(null, "Preencha todos os campos do Formulário!", "Falha", JOptionPane.ERROR_MESSAGE);
}

else {
	try {
		String comboFornecedor = (String)jcFornec.getSelectedItem();
		String comboMaterial = (String)jcMaterial.getSelectedItem();
		String comboTipo = (String)jcTipo.getSelectedItem();
		String sqlIdFornecedor = "SELECT idFornecedor FROM fornecedor WHERE empresa = '" + comboFornecedor + "'";
		String sqlIdItem = "SELECT idItem FROM materiais_equip WHERE descricao = '" + comboMaterial + "'";
		ConexaoDB conexaoDB = new ConexaoDB();
		conn = conexaoDB.getConnection();
		Statement st;
		st = conn.createStatement();
		ResultSet rs1;
		ResultSet rs2;
		rs1 = st.executeQuery(sqlIdFornecedor);
		rs2 = st.executeQuery(sqlIdItem);
		Item itemForn = new Item();
		Item itemMat = new Item();
		while ( rs1.next() ) {
			
			itemForn.setChave(rs1.getInt(1));
		}
		while (rs2.next()) {
				
			itemMat.setChave2(rs2.getInt(1));
		}
		String sql = "INSERT INTO " +
					"forn_mat (" +
					" idFornecedor, idItem, marca, tipo, precoUnit ) " +
					" VALUES ( " + itemForn.getChave() + "," +
					itemMat.getChave2() + ", '" +
					jtMarca.getText() + "', '" +
					comboTipo + "', " +
					Double.parseDouble(jtPrecoUnit.getText()) + ")";
			if (st.executeUpdate(sql) != 0) {
				JOptionPane.showMessageDialog(null, "Preço cadastrado com sucesso!", "Sucesso", JOptionPane.INFORMATION_MESSAGE);
				st.execute("commit");
			}
		else{
			JOptionPane.showMessageDialog(null, "Preço não cadastrado!", "Falha", JOptionPane.ERROR_MESSAGE);
		}
		rs1.close();
		rs2.close();
		st.close();
		conn.close();
	} catch ( SQLException se ) {
		se.printStackTrace();
	}
}
}
public void jbVoltarActionPerformed( ActionEvent e) {
	TelaFornecedor telaFornecedor = new TelaFornecedor();
	telaFornecedor.setVisible(true);
	setVisible(false);
}

public void preencherComboTipo() {
	try {
		ConexaoDB conexaoDB = new ConexaoDB();
		conn = conexaoDB.getConnection();
		Statement st;
		ResultSet rs;
		st = conn.createStatement();
		String sql = "SELECT idtipo_material, tipo FROM tipo_material ORDER BY tipo";
		rs = st.executeQuery(sql);
		while ( rs.next() ) {
			Item item = new Item();
			item.setNome(rs.getString(2));
			item.setChave(rs.getInt(1));
			jcTipo.addItem(item);
		}
		st.close();
		conn.close();
	} catch ( SQLException se ) {
		se.printStackTrace();
	}
}
	public void preencherComboFornec() {
		try {
			ConexaoDB conexaoDB = new ConexaoDB();
			conn = conexaoDB.getConnection();
			Statement st;
			ResultSet rs;
			st = conn.createStatement();
			String sql = "SELECT idFornecedor, empresa FROM fornecedor ORDER BY empresa";
			rs = st.executeQuery(sql);
			while ( rs.next() ) {
				Item item = new Item();
				item.setNome(rs.getString(2));
				item.setChave(rs.getInt(1));
				jcFornec.addItem(item);
			}
			st.close();
			conn.close();
		} catch ( SQLException se ) {
			se.printStackTrace();
		}
	
}

	public void preencherComboMaterial(){
		try {
			ConexaoDB conexaoDB = new ConexaoDB();
			conn = conexaoDB.getConnection();
			Statement st;
			ResultSet rs;
			st = conn.createStatement();
			String sql = "SELECT idItem, descricao FROM materiais_equip ORDER BY descricao";
			rs = st.executeQuery(sql);
			while ( rs.next() ) {
				Item item = new Item();
				item.setNome(rs.getString(2));
				item.setChave(rs.getInt(1));
				jcMaterial.addItem(item);
			}
			st.close();
			conn.close();
		} catch ( SQLException se ) {
			se.printStackTrace();
		}
	}
}

Erros:

Exception in thread AWT-EventQueue-0 java.lang.ClassCastException: br.estacio.scpmel.util.Item cannot be cast to java.lang.String

at br.estacio.scpmel.TelaCadastrarPrecos.jbSalvarActionPerformed(TelaCadastrarPrecos.java:172)

at br.estacio.scpmel.TelaCadastrarPrecos$1.actionPerformed(TelaCadastrarPrecos.java:136)

at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)

at java.awt.Component.processMouseEvent(Unknown Source)

at javax.swing.JComponent.processMouseEvent(Unknown Source)

at java.awt.Component.processEvent(Unknown Source)

at java.awt.Container.processEvent(Unknown Source)

at java.awt.Component.dispatchEventImpl(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)

at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)

at java.awt.Container.dispatchEventImpl(Unknown Source)

at java.awt.Window.dispatchEventImpl(Unknown Source)

at java.awt.Component.dispatchEvent(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForFilter(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)

7 Respostas

F

Olá Bruna,

Seu código está confuso, coloque ele dentro “ ”, mas eu olhando, achei estranho os trechos que vc colocou “oscombos”.addItem(item); , vc está adcionando a instancia da classe item (Item item = new Item()) , verifique que tem coisa errada, ok …

Generosamente,

Frid

B

Um colega tentou me ajudar e foi ele quem falou que eu teria que colocar deste jeito.

F

Olá,

Ele está enganado, mostre o post que eu respondi a ele, que talvez ele consiga arrumar …

Generosamente,

Frid

B

Ok!, qualquer coisa te perturbo dinovo, rsrs

Obrigada!

F

Ok Bruna, seu poder ajudar pode contar comigo, rs …

Generosamente,

Frid

B

Vc tinha razão, aquela parte estava errada. O correto é: Item itemMat = new Item();
Incluí o Mat aí, e onde estava rs1 e rs2, troquei para rs, e funcionou.

Obrigada!

F

Olá Bruna,

Que bom que conseguiu, vc está caminhando certo, pq esses erros são fundamentais para que possamos aprender, errei e erro muito ainda, e cada dia aprendo mais com os meus erros, inté mais …

Generosamente,

Frid

Criado 12 de setembro de 2008
Ultima resposta 15 de set. de 2008
Respostas 7
Participantes 2