Colocar o ultimo id do BD em uma jtextfield

Pessoal, minha dúvida é o seguinte…
Quero colocar em um campo jtextfield o último número de “id” do meu banco de dados de cliente.
Coloquei comentario" // AKI <- <<<<<<<<<<<" nos campos que tratam diretamente esse assunto no codigo.
no momento consta um erro que nao permite compilar… gostaria da ajuda de vc pra saber como devo colocar no codigo.
grato.

[code]public class CadastroCliente {
private int codigoCliente;
private String nomeCliente;

public int getCodigoCliente() {
	int codcliente = CadastroClienteDAO.getLastId();       // AKI <- <<<<<<<<<<<		
                            this.codigoCliente = codcliente;
	return codigoCliente;
}

public void setCodigoCliente(int codigoCliente) {
	this.codigoCliente = codigoCliente;
}

public String getNomeCliente() {

	String nomeDoCliente = CadastroClienteGraf.getJTextFieldNome().getText();
	this.nomeCliente = nomeDoCliente;
	return nomeCliente;
}

public void setNomeCliente(String nomeCliente) {
	this.nomeCliente = nomeCliente;
}

}

public class CadastroClienteDAO {

private static Connection conexao;

public CadastroClienteDAO() throws SQLException {
	this.conexao = FabricaConexao.getConexao();
}

public void adiciona(CadastroCliente cadasClient) throws SQLException {
	PreparedStatement stmt = (PreparedStatement) this.conexao
			.prepareStatement("insert into cliente (nomeCliente, cpfCliente, ufCliente) values (?,?,?)");
	stmt.setString(1, cadasClient.getNomeCliente());
	stmt.setString(2, cadasClient.getCPFcliente());
	stmt.setString(3, cadasClient.getUFcliente());
	stmt.execute();
	stmt.close();
}

public List selecionar(CadastroCliente cadasClient) throws SQLException {
	PreparedStatement sql = (PreparedStatement) this.conexao
			.prepareStatement("select nomeCliente from cliente where codigoCliente = " + cadasClient.getCodigoCliente());
	ResultSet rs = sql.executeQuery();
	
                            // CRIA OBEJTO LISTACONTATO DO TIPO LIST RESPONSAVEL POR ARMAZENAR TODOS
	// OS REGISTRO QUE FOREM SELECIONADOS NO CASO 1 SO
	List<CadastroCliente> listaCliente = new ArrayList<CadastroCliente>();
	while (rs.next()) {
		// cria objeto temporario cadastro
		CadastroCliente cadasClientTemp = new CadastroCliente();
		// instancia o objeto
		cadasClientTemp.setNomeCliente(rs.getString("nomefornecedor"));
		// insere dados na lista
		listaCliente.add(cadasClientTemp);
		System.out.println(listaCliente);
	}
	// fecha recordset
	rs.close();
	// fecha statement
	sql.close();
	return listaCliente;
}

//PEGAR O ULTIMO CODIGOCLIENTE DA TABELA CLIENTE  	
public static int getLastId() throws SQLException{                                  // AKI <- <<<<<<<<<<<
	String sql = "SELECT MAX(codigoCliente) as codigoCliente FROM CLIENTE"; 
	PreparedStatement stmt = (PreparedStatement) conexao.prepareStatement(sql); 
	ResultSet rs = stmt.executeQuery(); 
	rs.next(); 
	int lastId = rs.getInt("id"); 

	rs.close(); 
	stmt.close(); 

	return lastId; 
	} 
// METODO RESPONSAVEL POR ALTERAR DADOS NA TABELA FORNECEDOR
public void alterar(CadastroCliente cadasClient) throws SQLException {
	// prepared statement para inserção
	PreparedStatement sql = (PreparedStatement) this.conexao.prepareStatement("update cliente set nome = '"
			+ cadasClient.getNomeCliente());
	sql.executeUpdate();
}

// METODO RESPONSAVEL POR DELETAR DADOS NA TABELA CADASTRO
public void deletar(CadastroCliente cadasClient) throws SQLException {
	PreparedStatement sql = (PreparedStatement) this.conexao.prepareStatement("delete from cadastro where codigo = "
					+ cadasClient.getCodigoCliente());
	sql.executeUpdate();
}

}

public class CadastroClienteGraf extends JFrame {

private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JLabel Label_CodigoCliente = null;
private JLabel Label_NomeCliente = null;
private JTextField JTextFieldCodigoCliente = null;
private static JTextField JTextFieldNome = null;
private JButton BotaoSalvarCliente = null;

public CadastroClienteGraf() {
	super();
	initialize();
}

private void initialize() {
	this.setSize(538, 271);
	this.setContentPane(getJContentPane());
	this.setTitle("JFrame");
}

private JPanel getJContentPane() {
	if (jContentPane == null) {
		Label_NomeCliente = new JLabel();
		Label_NomeCliente.setBounds(new Rectangle(146, 25, 114, 16));
		Label_NomeCliente.setText("Nome/Razão Social:");
		Label_CodigoCliente = new JLabel();
		Label_CodigoCliente.setBounds(new Rectangle(12, 22, 46, 16));
		Label_CodigoCliente.setText("Codigo:");
		jContentPane = new JPanel();
		jContentPane.setLayout(null);
		jContentPane.add(Label_CodigoCliente, null);
		jContentPane.add(Label_NomeCliente, null);
		jContentPane.add(getJTextFieldCodigoCliente(), null);
		jContentPane.add(getJTextFieldNome(), null);
		jContentPane.add(getBotaoSalvarCliente(), null);
	}
	return jContentPane;
}

            private JTextField getJTextFieldCodigoCliente() {                          // AKI <- <<<<<<<<<<<
	if (JTextFieldCodigoCliente == null) {
		JTextFieldCodigoCliente = new JTextField(CadastroCliente.getCodigoCliente());
		JTextFieldCodigoCliente.setBounds(new Rectangle(59, 22, 79, 20));
	}
	return JTextFieldCodigoCliente;
}
static JTextField getJTextFieldNome() {
	if (JTextFieldNome == null) {
		JTextFieldNome = new JTextField();
		JTextFieldNome.setBounds(new Rectangle(265, 25, 250, 20));

	}
	return JTextFieldNome;
}

private JButton getBotaoSalvarCliente() {
	if (BotaoSalvarCliente == null) {
		BotaoSalvarCliente = new JButton();
		BotaoSalvarCliente.setBounds(new Rectangle(30, 170, 86, 42));
		BotaoSalvarCliente.setText("Salvar");
		BotaoSalvarCliente
				.addActionListener(new java.awt.event.ActionListener() {
					public void actionPerformed(
							java.awt.event.ActionEvent evt) {
						try {
							CadastroCliente cadasClient = new CadastroCliente();
							CadastroClienteDAO dao = new CadastroClienteDAO();

							// / trabalhar no codigo pra salvar mais coisas
							cadasClient.setNomeCliente(getJTextFieldNome().getText());

							dao.adiciona(cadasClient);

							System.out.println("Gravado");
						} catch (SQLException e) {
							e.printStackTrace();
						}
					}
				});
	}
	return BotaoSalvarCliente;
}

}
[/code]

parece que vc esta adicionando um int no JTextField

converta o resoltado do getID para string

Não é isso não! O método…

[code]//PEGAR O ULTIMO CODIGOCLIENTE DA TABELA CLIENTE
public static int getLastId() throws SQLException{ // AKI <- <<<<<<<<<<<
String sql = “SELECT MAX(codigoCliente) as codigoCliente FROM CLIENTE”;
PreparedStatement stmt = (PreparedStatement) conexao.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
rs.next();
int lastId = rs.getInt(“id”);

    rs.close();   
    stmt.close();   

    return lastId;   
    }   

[/code]
Está funcionando belezia trazendo o valor correto.

O que eu não estou conseguindo é mandar o valor que retorna desse metodo pro meu jtextfield

JTextField text = new JTextFiel(getLastId().toString())

É isso sim…o valor está correto, porem está retornando em int. Para setar o valor em uma JTexfield, você deve passar uma String.

hehehehe

ahh luis, nem para deixar ele deduzir meu codigo kkkk

estrago a graça da situação

Foi malz cara…qd eu postei não tinha sua 2 resposta!kkkkkk

Até pq depois da sua resposta, não precisaria de mais nada a não ser o copy-paste.

kkk relaxa, isso acontece comigo tambem, quando vou responder e clico em enviar ja tem 5 post na frente kkkkk

concorrencia no GUJ

copy-paste, pois é, como sempre digo para meus estagiarios

Leiam as mensagens de erro kkkkkkkkk

Entendo… suspeitei que isso estaria errado… mas vamos lá

Eu tenho uma class CadastroCliente que declara as variaveis

[code]public class CadastroCliente {
private int codigoCliente;

public int getCodigoCliente() {
	return codigoCliente;
}


public void setCodigoCliente(int codigoCliente) {
	this.codigoCliente = codigoCliente;
}[/code]

Tenho uma classe CadastroClienteDAO que tem o metodo que pega o último número:

[code]public class CadastroClienteDAO {
public static int getLastId() throws SQLException{
String sql = “SELECT MAX(codigoCliente) as codigoCliente FROM CLIENTE”;
PreparedStatement stmt = (PreparedStatement) conexao.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
rs.next();
int lastId = rs.getInt(“id”);

	rs.close(); 
	stmt.close(); [/code]

E tenho a classe CadastroClienteGraf que tem o jtextfield

[code]private JTextField getJTextFieldCodigoCliente() {
	if (JTextFieldCodigoCliente == null) {
		JTextFieldCodigoCliente = new JTextField(CadastroClienteDAO.getLastId().toString()); //<<< o erro está dando aki
		JTextFieldCodigoCliente.setBounds(new Rectangle(59, 22, 79, 20));
	}
	return JTextFieldCodigoCliente;
}
	return lastId; 
	} [/code]

Como eu devo colocar nesses 3 lugares? Obs. eu acho que o único errado é o último codigo.

 JTextFieldCodigoCliente = new JTextField(String.valueOf(CadastroClienteDAO.getLastId()));

tente isso

Coloquei > JTextFieldCodigoCliente = new JTextField(String.valueOf(CadastroClienteDAO.getLastId()));

Deu esse erro:

java.lang.reflect.InvocationTargetExceptionIWAV0052E Invocation Target Exception creating CadastroClienteGraf

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
at java.awt.event.InvocationEvent.dispatch(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)

Caused by: java.lang.Error: Unresolved compilation problem:
Unhandled exception type SQLException

at CadastroClienteGraf.getJTextFieldCodigoCliente(CadastroClienteGraf.java:67)
at CadastroClienteGraf.getJContentPane(CadastroClienteGraf.java:56)
at CadastroClienteGraf.initialize(CadastroClienteGraf.java:32)
at CadastroClienteGraf.<init>(CadastroClienteGraf.java:27)
... 13 more

1- vc tem que istanciar sua classe CadastroClienteDAO ,pois ela não é estatica para acessar do jeito que vc esta fazendo
2- vc tem que entender oque vc quer fazer (explicando: queremos pegar o ID (int) e transformar em uma String para adicionar no textfield), ai a pergunte seguinte
3- como fazer? JTextFieldCodigoCliente = new JTextField(String.valueOf(minhaClasseDAO.getLastId()));

se vc nao conseguir entender sugiro rever seus conceitos de OO

Poxa… estou postando minha dúvida em “Java Básico” pq minha dúvida é basica msm!
Se eu dominace OO… já poderia estar postando em “Java Avançado”.

Se alguem puder ajudar como deve ser colocado… posta aeh q, como irei fazer isso varias e varias vezes… vou memorizar o correto.
Vlw.

Se eu coloco na class CadastroClienteGraf assim:

           [code]    private JTextField getJTextFieldCodigoCliente() {
	if (JTextFieldCodigoCliente == null) {
		try {
			CadastroCliente cadasClient = new CadastroCliente();
			CadastroClienteDAO dao = new CadastroClienteDAO();
			JTextFieldCodigoCliente = new JTextField(String.valueOf(CadastroClienteDAO.getLastId()));
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		JTextFieldCodigoCliente.setBounds(new Rectangle(59, 22, 79, 20));
               }

return JTextFieldCodigoCliente;
}[/code]

Da esse erro:

[color=red]java.sql.SQLException: Column ‘id’ not found.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1144)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2793)
at CadastroClienteDAO.getLastId(CadastroClienteDAO.java:56)
at CadastroClienteGraf.getJTextFieldCodigoCliente(CadastroClienteGraf.java:94)
at CadastroClienteGraf.getJContentPane(CadastroClienteGraf.java:75)
at CadastroClienteGraf.initialize(CadastroClienteGraf.java:36)
at CadastroClienteGraf.(CadastroClienteGraf.java:31)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
at java.awt.event.InvocationEvent.dispatch(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)
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
at java.awt.event.InvocationEvent.dispatch(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)
IWAV0052E Invocation Target Exception creating CadastroClienteGraf
Caused by: java.lang.NullPointerException
at CadastroClienteGraf.getJTextFieldCodigoCliente(CadastroClienteGraf.java:99)
at CadastroClienteGraf.getJContentPane(CadastroClienteGraf.java:75)
at CadastroClienteGraf.initialize(CadastroClienteGraf.java:36)
at CadastroClienteGraf.(CadastroClienteGraf.java:31)
… 13 more[/color]

Consegui… valeu a todos

posta a solução para que os outros que tenham essa duvida e coloque como resolvido.

[quote]Poxa… estou postando minha dúvida em “Java Básico” pq minha dúvida é basica msm!
Se eu dominace OO… já poderia estar postando em “Java Avançado”. [/quote]

eu nao gosto de postar codigo, isso não ajuda as pessoas em nada, apenas ensinam a ctrl + c, ctrl + v.

eu postei o seu problema, o qual vc não estava conseguindo identificar, isso vale mais que qualquer codigo, pois ensina a vc corrigir o problema e entender a exception