Adicionar dados, mas usando interface gráfica

Olá a todos, recem chegado no forum! conhecendo agora aqui :slight_smile:

Gostaria de uma ajudinha

Eu tenho a minha classe CadFornecedorDao e a AdicionaFornecedor

E estou com um problema faz tempo
tenho campos do tipo int, e eu adiciono os dados de boa, mas ai quando tento fazer com interface grafica nao estou achando jeito
do jeito que esta o stmt.setInt(7, f1.getNumero()); eu queria colocar na interface

lembrando: CadFornecedorDao e a AdicionaFornecedor funciona beleza! mas o com interface nao estou sabendo manipular direito ai

CadFornecedorDao

[code]//Adicionar
public void adiciona(CadFornecedor f1) throws SQLException
{
//Prepara a conexão
String sql = “INSERT INTO cad_fornecedores (razao_social,nome_fantasia,cnpj,”+
“ie,im,logradouro,numero,complemento,estado,cep,bairro,” +
“cidade,ddd_com,tel_com,ddd_res,tel_res,ddd_cel,celular,” +
“pag_web,email,observacoes)”+
“VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)”;
PreparedStatement stmt = conexao.prepareStatement(sql);

    //Preenche os valores
    stmt.setString(1, f1.getRazao_social());
    stmt.setString(2, f1.getNome_fantasia());
    stmt.setString(3, f1.getCnpj());
    stmt.setString(4, f1.getIe());
    stmt.setString(5, f1.getIm());
    stmt.setString(6, f1.getLogradouro());
    stmt.setInt(7, f1.getNumero());
    stmt.setString(8, f1.getComplemento());
    stmt.setString(9, f1.getEstado());
    stmt.setString(10, f1.getCep());
    stmt.setString(11, f1.getBairro());
    stmt.setString(12, f1.getCidade());
    stmt.setInt(13, f1.getDdd_com());
    stmt.setString(14, f1.getTel_com());
    stmt.setInt(15, f1.getDdd_res());
    stmt.setString(16, f1.getTel_res());
    stmt.setInt(17, f1.getDdd_cel());
    stmt.setString(18, f1.getCelular());
    stmt.setString(19, f1.getPag_web());
    stmt.setString(20, f1.getEmail());
    stmt.setString(21, f1.getObservacoes());

    //Executa e fecha
    stmt.execute();
    stmt.close();
}[/code]

AdicionaFornecedor

[code]public class AdicionaFornecedor {

    public static void main(String[] args) throws SQLException
    {
        //Adiciona um novo fornecedor
        CadFornecedor fornecedor = new CadFornecedor();
        fornecedor.setRazao_social("Razao social");
        fornecedor.setNome_fantasia("Nome fantasia");
        fornecedor.setCnpj("123456789");
        fornecedor.setIe("12345");
        fornecedor.setIm("12334");
        fornecedor.setLogradouro("1239");
        fornecedor.setNumero(445);
        fornecedor.setComplemento(null);
        fornecedor.setEstado(null);
        fornecedor.setCep(null);
        fornecedor.setBairro(null);
        fornecedor.setCidade(null);
        fornecedor.setDdd_com(35);
        fornecedor.setTel_com(null);
        fornecedor.setDdd_res(35);
        fornecedor.setTel_res(null);
        fornecedor.setDdd_cel(35);
        fornecedor.setCelular(null);
        fornecedor.setPag_web(null);
        fornecedor.setEmail(null);
        fornecedor.setObservacoes(null);

        CadFornecedorDao dao = new CadFornecedorDao();
        dao.adiciona(fornecedor);
        JOptionPane.showMessageDialog(null, "Fornecedor adicionado com sucesso!");
    }

}[/code]

Com interface gráfica

[code]try
{
CadFornecedor f1 = new CadFornecedor();
f1.setRazao_social(txtRazaoSocial.getText());
f1.setNome_fantasia(txtNomeFantasia.getText());
f1.setCnpj(txtCnpj.getText());
f1.setIe(txtIE.getText());
f1.setIm(txtIM.getText());
f1.setLogradouro(txtLogradouro.getText());
//int numero = Integer.parseInt(txtNumero.getText());
//f1.setNumero(numero);
f1.setComplemento(txtComplemento.getText());
f1.setEstado((String) cbEstado.getSelectedItem());
f1.setCep(txtCEP.getText());
f1.setBairro(txtBairro.getText());
f1.setCidade(txtCidade.getText());
//int ddd_dom = Integer.parseInt(txtDDDCom.getText());
//f1.setDdd_com(ddd_dom);
f1.setTel_com(txtTelComercial.getText());
//int ddd_res = Integer.parseInt(txtDDDRes.getText());
//f1.setDdd_res(ddd_res);
f1.setTel_res(txtTelResidencial.getText());
//int ddd_cel = Integer.parseInt(txtDDDCel.getText());
//f1.setDdd_cel(ddd_cel);
f1.setCelular(txtCelular.getText());
f1.setPag_web(txtPagWeb.getText());
f1.setEmail(txtEmail.getText());
f1.setObservacoes(txtObservacoes.getText());

        CadFornecedorDao dao = new CadFornecedorDao();
        dao.adiciona(f1);

    }
    catch (SQLException ex)
    {
        JOptionPane.showMessageDialog(null, "Erro ao adicionar o fornecedor");
    }[/code]

se eu uso f1.setNumero(txtNumero.getText());
nao da certo, mesmo na minha classe CadFornecedor este numero esta como int

beleza rafa120, não entendi muito bem está dando erro de conversão de tipo ou você está sabendo passar os dados do seu formulário para o método?

Então, to achando que eu falei mto, mas nao deixei claro

Resumindo: Eu quero saber como eu faço um JTextField receber valores, tanto int, date quanto string

Tenta isso no teu código. Para data é mais interessante um JTextField formatado corretamente.


String texto = tf.getText(); 
Integer i = new Integer(tf.getText());              
Double d = new Double(tf.getText());
int n = Integer.parseInt(tf.getText());
float f = Float.parseFloat(tf.getText());

Entao, coloquei

Integer i = new Integer(txtNumero.getText());
f1.setNumero(i);

Executou, mas ai fica dando o erro que ja vem dando comigo. o erro que o campo esta esperando uma string “”
java.lang.NumberFormatException: For input string: “”

ai se eu coloco um valor la, ai grava … é claro
mas e se eu nao quiser colocar nada?

ai no caso eu teria que fazer um if, ai funciona!
mas ai que esta, acho isso uma gambiarra, eu usava um metodo sem o preparedstatement, dai me falaram pra usar o prepared que eu nao iria ter estes problemas… mas nao eh oq esta acontecendo