Dúvida boba

7 respostas
D

Pessoal,

Estou fazendo um programinha aki, preciso capturar o que está na caixa de texto, conforme o código abaixo:

C.setCod(tfCod.getText());

C.setNome(tfNome.getText());

C.setEndereco(tfEndereco.getText());

Onde tfCod, tfNome, tfEndereco são as TextField.

Porém a variavel tfCod é do tipo int, e devido a isso ocorre erro.

Podem informar como faço para convertê-la para String?

7 Respostas

L
int para string
String s = Integer.valueOf(variavel inteira).toString()
ou
String -> int
int i = Integer.valueOf(variavel string);
P

luBS:
int i = Integer.valueOf(variavel string);

Isto apenas funciona para Java 5 e posterior, que faz o autoboxing (converte Integer para int)

Podes também fazer, sem autoboxing

int i = Integer.parseInt(variavel);
L

pmlm:
luBS:
int i = Integer.valueOf(variavel string);

Isto apenas funciona para Java 5 e posterior, que faz o autoboxing (converte Integer para int)

Podes também fazer, sem autoboxing

int i = Integer.parseInt(variavel);

Imagino que quem esteja iniciando e fazendo um programinha, não seria louco de ficar usando uma versão do java de uns 4 anos atras.

Alias, por default EU já espero que todos programas java já usem no minimo java 5, se não usarem, é obrigação da pessoa de dizer :wink:

P

Certo.

No entanto há dois factores a ter em conta:

  • O parseInt é (ligeiramente) mais rápido

  • O autoboxing pode ser perigoso quando não sabemos bem que o estamos a utilizar. Experimenta este código:

class Test {
    public static void main(String[] args) {
        Integer i1 = 127;
        Integer i2 = 127;
        System.out.println(i1 == i2);
        
        Integer i3 = 128;
       	Integer i4 = 128;
       	System.out.println(i3 == i4);
    }
}

O que é que ele vai escrever?

D

Pessoal, Não entendi muito bem, vou colocar o código para que talvez vcs consigam me explicar.

CLASSE CLIENTE:

public int getCod() {
		return cod;
	}
	public void setCod(int cod) {
		this.cod = cod;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getRg() {
		return rg;
	}
	public void setRg(String rg) {
		this.rg = rg;
	}
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	public Date getDataNasc() {
		return dataNasc;
	}
	public void setDataNasc(Date dataNasc) {
		this.dataNasc = dataNasc;
	}
	public String getEndereco() {
		return endereco;
	}
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}
	public String getCep() {
		return cep;
	}
	public void setCep(String cep) {
		this.cep = cep;
	}
	public String getBairro() {
		return bairro;
	}
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	public String getEstado() {
		return estado;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getCel() {
		return cel;
	}
	public void setCel(String cel) {
		this.cel = cel;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}

CLASSE Q CONTROLA A TELA

package controle;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import modelo.Cliente;
import modelo.DAOCliente;

public class ControleTelaCliente implements ActionListener
{
	
	private JFrame tela;
	
	public ControleTelaCliente(JFrame tela)
	{
		this.tela = tela;
	}
	public ControleTelaCliente()
	{
		
	}
	
	
	
	public void actionPerformed(ActionEvent e)
	{
		
		JPanel painel = (JPanel)tela.getContentPane().getComponent(0);
		JScrollPane sPainel = (JScrollPane)painel.getComponent(24);
		JViewport JV = (JViewport)sPainel.getComponent(0);
		JTable tabela = (JTable)JV.getComponent(0);
		DefaultTableModel DTM = (DefaultTableModel)tabela.getModel();
					
		Cliente C = new Cliente();
		DAOCliente DAO = new DAOCliente();
		
		JTextField tfCod = (JTextField)painel.getComponent(1);
		JTextField tfNome = (JTextField)painel.getComponent(3);
		JTextField tfRg = (JTextField)painel.getComponent(5);
		JTextField tfCpf = (JTextField)painel.getComponent(7);
		JTextField tfData = (JTextField)painel.getComponent(9);
		JTextField tfEndereco = (JTextField)painel.getComponent(11);
		JTextField tfCep = (JTextField)painel.getComponent(13);
		JTextField tfBairro = (JTextField)painel.getComponent(15);
		JTextField tfEstado = (JTextField)painel.getComponent(17);
		JTextField tfTel = (JTextField)painel.getComponent(19);
		JTextField tfCel = (JTextField)painel.getComponent(21);
		JTextField tfEmail = (JTextField)painel.getComponent(23);
		
		
		C.setCod(tfCod.getText());
		C.setNome(tfNome.getText());
		C.setRg(tfRg.getText());
		C.setCpf(tfCpf.getText());
  	    C.setDataNasc(tfData.getText());
		C.setEndereco(tfEndereco.getText());
		C.setCep(tfCep.getText());
		C.setBairro(tfBairro.getText());
		C.setEstado(tfEstado.getText());
		C.setTel(tfTel.getText());
		C.setCel(tfCel.getText());
		C.setEmail(tfEmail.getText());
		
		
		
		
		
		
		
		
		
		if(e.getActionCommand().equals("Cadastrar"))
		{
			DTM.addRow(new String[]{C.getCod(),C.getNome(),C.getRg(),C.getCpf(),C.getDataNasc(),C.getEndereco(),C.getCep(),C.getBairro(),C.getEstado(),C.getTel(),C.getCel(),C.getEmail()});
			DAO.cadastrar(C);
			
			JOptionPane.showMessageDialog(null,"Cadastro Confirmado");
			
			tfCod.setText("");
			tfNome.setText("");
			tfRg.setText("");
			tfCpf.setText("");
			tfData.setText("");
			tfEndereco.setText("");
			tfCep.setText("");
			tfBairro.setText("");
			tfEstado.setText("");
			tfTel.setText("");
			tfCel.setText("");
			tfEmail.setText("");
			
			
		
		}
		
		if (e.getActionCommand().equals("Alterar"))
		{
			
			
			for(int i=0;i<DTM.getRowCount();i++)
			{
				
				if(DTM.getValueAt(i,0).equals(C.getCod()))
				{
					DAO.alterar(C);
					DTM.setValueAt(C.getNome(),i,1);
					DTM.setValueAt(C.getRg(),i,2);
					DTM.setValueAt(C.getCpf(),i,3);
					DTM.setValueAt(C.getDataNasc(),i,4);
					DTM.setValueAt(C.getEndereco(),i,5);
					DTM.setValueAt(C.getCep(),i,6);
					DTM.setValueAt(C.getBairro(),i,7);
					DTM.setValueAt(C.getEstado(),i,8);
					DTM.setValueAt(C.getTel(),i,9);
					DTM.setValueAt(C.getCel(),i,10);
					DTM.setValueAt(C.getEmail(),i,11);
														
					JOptionPane.showMessageDialog(null,"Altereação confirmada");
																									
				}
				
						
			}
		
			
					
		}
	
			
		
		
if(e.getActionCommand().equals("Excluir")){
			
			boolean achou=false; int pos=0;
			
			DAO.excluir(C);
			for(int i=0;i<DTM.getRowCount();i++)
			{
				if(DTM.getValueAt(i,0).equals(C.getCod())){
					pos=i;
					achou=true;
				}
				if(achou)
				{
					DTM.removeRow(pos);
					
					
				}
			}
			JOptionPane.showMessageDialog(null,"Cadastro Excluído");
			
			
			
			tfCod.setText("");
			tfNome.setText("");
			tfRg.setText("");
			tfCpf.setText("");
			tfData.setText("");
			tfEndereco.setText("");
			tfCep.setText("");
			tfBairro.setText("");
			tfEstado.setText("");
			tfTel.setText("");
			tfCel.setText("");
			tfEmail.setText("");
			
		}	

if(e.getActionCommand().equals("Consultar"))
{
	
	C=DAO.consultar(C);
	if(C == null)
	{
		JOptionPane.showMessageDialog(null,"Cadastro Inexistente");
		
		
	}
	else
	{
		tfCod.setText(C.getCod());
		tfNome.setText(C.getNome());
		tfRg.setText(C.getRg());
		tfCpf.setText(C.getCpf());
		tfData.setText(C.getDataNasc());
		tfEndereco.setText(C.getEndereco());
		tfCep.setText(C.getCep());
		tfBairro.setText(C.getBairro());
		tfEstado.setText(C.getEstado());
		tfTel.setText(C.getTel());
		tfCel.setText(C.getCel());
		tfEmail.setText(C.getEmail());
		
					
		JOptionPane.showMessageDialog(null,"Consulta efetuada com sucesso");
		//DTM.addRow(new String[]{C.getCod(),C.getNome(), C.getRg(),C.getCpf(),C.getDataNasc(),C.getEndereco(),C.getBairro(),C.getEstado(),C.getTel(),C.getCel(),C.getEmail()});
	 
	}
} 
		
			
		if(e.getActionCommand().equals("Sair"))
		{
			tela.dispose();
		}
		
	}

}

BANCO

package modelo;

import java.sql.*;
import java.util.Vector;

import javax.swing.JOptionPane;



public class DAOCliente 
{
	private Connection c;
	private PreparedStatement PS;
	private ResultSet R;
	
	public DAOCliente()
	{
		try
		{
			Class.forName("org.postgresql.Driver");
			c = DriverManager.getConnection("jdbc:postgresql:siscafe", "postgres", "postgres");
				PS = null;
				R = null;
		
		}
		catch(Exception e)
		{
			
		}
	}
	
	public Vector consultarTodos()
	{
		Vector V = new Vector();
		
		try{
			PS = c.prepareStatement("SELECT * FROM cliente");
			R = PS.executeQuery();
			while(R.next())
			{
				
				
				Cliente C = new Cliente();
				C.setCod(R.getString("Codigo"));
				C.setNome(R.getString("Nome"));
				C.setRg(R.getString("Rg"));
				C.setCpf(R.getString("Cpf"));
				C.setDataNasc(R.getString("Data"));
				C.setEndereco(R.getString("Endereco"));
				C.setCep(R.getString("Cep"));
				C.setBairro(R.getString("Bairro"));
				C.setEstado(R.getString("Estado"));
				C.setTel(R.getString("Tel"));
				C.setCel(R.getString("Cel"));
				C.setEmail(R.getString("Email"));
				
				
				V.add(C);
				
			}
			return V;
		}
		catch(Exception e)
		{
			System.out.println("" + e);
			return null;
		}
		
	}
	
	public void cadastrar (Cliente C)
	{
		try
		{
			
			PS = c.prepareStatement("INSERT INTO cliente VALUES(?,?,?,?,?,?,?,?,?,?,?,?)");
			
			PS.setString(1, C.getCod());
			PS.setString(2, C.getNome());
			PS.setString(3, C.getRg());
			PS.setString(4, C.getCpf());
			PS.setString(5, C.getDataNasc());
			PS.setString(6, C.getEndereco());
			PS.setString(7, C.getCep());
			PS.setString(8, C.getBairro());
			PS.setString(9, C.getEstado());
			PS.setString(10, C.getTel());
			PS.setString(11, C.getCel());
			PS.setString(12, C.getEmail());
				
			
			PS.executeUpdate();
			
			
		}
		catch(Exception e)
		{
			
		}
	}
	
	public void alterar(Cliente C)
	{
		try
		{
			
			PS = c.prepareStatement("UPDATE cliente SET nome=?,rg=?,cpf=?,data=?,endereco=?,cep=?,bairro=?,estado=?,tel=?,cel=?,email=? WHERE codigo=?");        
            
			
			PS.setString(1,C.getNome());
			PS.setString(2,C.getRg());
			PS.setString(3,C.getCpf());
			PS.setString(4,C.getDataNasc());
			PS.setString(5,C.getEndereco());
			PS.setString(6,C.getCep());
			PS.setString(7,C.getBairro());
			PS.setString(8,C.getEstado());
			PS.setString(9,C.getTel());
			PS.setString(10,C.getCel());
			PS.setString(11,C.getEmail());
			PS.setString(12,C.getCod());
			PS.executeUpdate();
		}
		catch (Exception e)
		{
			
		}
	}
	
	public void excluir (Cliente C)
	{
		try{
			PS = c.prepareStatement("DELETE FROM cliente WHERE codigo=?");
			PS.setString(1,C.getCod());
			PS.executeUpdate();
		}
		catch(Exception e){
			
		}
	}
	
	
	public Cliente consultar (Cliente C)
	{
		try{
			PS = c.prepareStatement("SELECT * FROM cliente WHERE codigo=?");        
            PS.setString(1,C.getCod());        
            R = PS.executeQuery();        
            if(R.next())
            {        
                            
            	C.setCod(R.getString("codigo"));
            	C.setNome(R.getString("nome"));
				C.setRg(R.getString("rg"));
				C.setCpf(R.getString("cpf"));
				C.setDataNasc(R.getString("data"));
				C.setEndereco(R.getString("endereco"));
				C.setCep(R.getString("cep"));
				C.setBairro(R.getString("bairro"));
				C.setEstado(R.getString("estado"));
				C.setTel(R.getString("tel"));
				C.setCel(R.getString("cel"));
				C.setEmail(R.getString("email"));
                
                return C;
                       
            }  
            else
            	return null;
         			
		}
		catch(Exception e)
		{
			return null;	
		}
		
	}
	
	public void finalize()
		{
		//metodo automatico para fechamento de pendencias.
			try
			{
				PS.close();
				c.close();
			}
			catch(Exception e)
			{
			}		
			
		}
}

Eu fiz com todos os atributos como String e funciona normalmente, para que eu use o atributo codigo com int e o atributo data como date, quais modificações eu devo fazer?
>

L

Tah, se vc entender isso vc entende as coisas:

Converter string para int e data (formato dd/MM/yyyy)

String dataString = "28/07/1983";
		String codigoString = "1";

		Date data = new SimpleDateFormat("dd/MM/yyyy").parse(dataString);
		int codigo = Integer.parseInt(codigoString);

No banco (setar os parametros na query)

PreparedStatement ps = .....
		ps.setInt(1, codigo);
		ps.setDate(2, new java.sql.Date(data.getTime()));

Do banco (obter através do ResultSet)

ResultSet rs = ....;
		rs.getInt(1);
		rs.getDate(2);

Com isso vc pode arrumar qualquer coisa dai…

D

Certo, Como ficaria na classe ControlaCliente ?

Criado 18 de fevereiro de 2009
Ultima resposta 27 de fev. de 2009
Respostas 7
Participantes 3