Fazer jTextField aceitar objetos

5 respostas
rafa120

Como eu faço isso?

Eu tenho uma classe e preciso que receba o valor digitado dentro dela (do jtextfield)

com combobox da certo, pq no jtextfield nao?

Combo: Contrato c = (Contrato) cbIDContrato.getSelectedItem();

5 Respostas

ViniGodoy

E como vc fez com o JTextField?

rafa120

assim:

ContratoDao dao = new ContratoDao(); Contrato contrato = new Contrato(); contrato = dao.valorContrato(Integer.parseInt(txtCodigoContrato.getText()));

incompatible types
required: contratos.bean.Contrato
found: java.lang.String

ViniGodoy

Isso aí só está dizendo que o método valorContrato retorna uma String e não um Contato.

Pode postar o método valorContrato do seu DAO?

rafa120

É este aqui, com combobox ele me mostrava o valor perfeitamente.

public String valorContrato;
    public String valorContrato(Integer codContrato) throws SQLException
    {
        String sql = "select c.cod_contrato,c.valor_contrato, valor_contrato "+
                    "from contrato c inner join nf n on c.cod_contrato = n.cod_contrato "+
                    "where c.cod_contrato=? group by c.cod_contrato,c.valor_contrato";
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        stmt.setInt(1, codContrato);
        ResultSet rs = stmt.executeQuery();

        while (rs.next())
        {
            valorContrato = rs.getString("valor_contrato");
        }

        rs.close();
        stmt.close();
        return valorContrato;
    }
ViniGodoy

Então. Esse método está retornando uma String, mas você está tentando atribuí-lo a um objeto do tipo Contato.

Veja que não tem nada a ver com o JTextField ou com o ComboBox. Isso está funcionando corretamente. O parâmetro do JTextField entra no método, o método funciona e retorna uma String.

É na linha:
[color=red]contrato =[/color] dao.valorContrato(Integer.parseInt(txtCodigoContrato.getText()));

Que está o problema, pois o retorno do método é String e não um Contato:
public [color=red]String[/color] valorContrato(Integer codContrato) throws SQLException

No ComboBox é possível pois você tem um Contato diretamente dentro do Combo. Como vc mesmo indicou, você nem sequer chama o método valorContrato. Será que o certo ali não seria algo como carregarContato?

Criado 23 de dezembro de 2010
Ultima resposta 24 de dez. de 2010
Respostas 5
Participantes 2