Contador em JAVA

Boa tarde.
Gostaria de saber como faço um contador que toda vez que eu clicar em um determinado JButton ele me informar o numero. Ex: a primeira vez que eu clicar a parecer o numero 1, a segunda vez 2 e assim por diante.

Não se se é possivel.

Não, isso não é possivel

LucioSantos1 e Jonas_B_a_r_r_o_s é possível sim fazer um contador para marcar quantas vezes o botão é clicado.
Crie uma variável global do tipo inteiro para cada botão e inicialize-a valendo 0. Crie um evento mouseClicked em cada botão, e na implementação você incrementa o valor do botão.
Segue exemplo:

private int botao1=0;
private int botao2=0;
private int botao3=0;
private int botao4=0;
...
btnBotao1.addMouseListener(new MouseAdapter() {
        @Override
	public void mouseClicked(MouseEvent arg0) {
		botao1++;
		txtBotao1.setText(botao1+"");
	}
});

Neste exemplo eu estou exibindo a quantidade de vezes que o botão foi clicado em um JTextField.

Agora é só adaptar no seu código. Espero que seja isso que esteja precisando.
Abraços

Acho que o Jonas_B_a_r_r_o_s precisa aprender a programar… existem INÚMERAS maneiras de fazer isso, uma delas é como o Magalhas explicou…

2 curtidas

Exatamente Flavio_Maidl, esta maneira que o Magalhas explicou é simples, pratico e funcional. Ainda mais em JAVA, se não tivesse a possibilidade de fazer esta contagem ai pode abandonar kkkkk

Não isso nao é possivel. É a coisa mais complexa que ja vi

Demorei mas encontrei uma solução:

Eu queria que quando o usuario clicasse em um determinado JMenuItem abrisse uma tela de cadastro e no TextField codigo aparecesse o proximo codigo do usuario.
Ex: Se o codigo do ultimo cliente cadastrado for 57 o proximo seria 58 e assim por diante.

Tela inicial (onde tem os JMenuItem):

boolean consultausuarios(){
    boolean ok = true ;
   
    String sql;
    
    sql = "select * from FuncionarioProjeto1";
    try{
        Statement st = conexao.createStatement();
        ResultSet rs = st.executeQuery(sql) ;
        while  (rs.next()){
        	
         
          cod=Integer.parseInt(rs.getString(1))+1;
          Scod=String.valueOf(cod);
          
        }
    }catch(Exception erro){
        ok = false ;
    }
   
   
    return ok ;
}

// e chamando a ação
boolean ok;
ok=consultausuarios();

Na tela de cadastro:

// Chamando a variavel da outra classe

String Scod= menu.Scod;

Bom dia LucioSantos1,

Neste caso para fazer esta ação, eu utilizaria no SELECT a função max() informando somente o campo do ID

Motivo: toda vez que vc executa o comando select * from FuncionarioProjeto1
vc carrega todas as informações da tabela só pra obter o ultimo id/registro entao, se essa tabela por ventura vier a ter 10mil, 100mil registros, imagine o processamento disso tudo só pra pegar um id?
outro ponto, no seu ResultSet voce percorre registro a registro pra obter a informação que voce deseja.
Vejamos, Voce carrega tabela toda do banco de forma desnecessaria para pegar apenas uma informação e depois voce percorre a tabela toda pra pegar essa referida informação, isso custa muito pra ser uma coisa simples, segue abaixo sugestão:

boolean consultausuarios(){
boolean ok = true ;

String sql;

sql = "select MAX(ID_FUNCIONARIO) from FuncionarioProjeto1";

OU
SELECT ID_FUNCIONARIO FROM FUNCIONARIOPROJETO1 ORDER BY ID_FUNCIONARIO DESC LIMIT 1

try{
    Statement st = conexao.createStatement();
    ResultSet rs = st.executeQuery(sql) ;
    if(rs.first()){       	
     
      cod=Integer.parseInt(rs.getString(1))+1;
      Scod=String.valueOf(cod);
      
    }
}catch(Exception erro){
    ok = false ;
}


return ok ;

}

Me diga que isso é ironia…