To fazendo um programa de atendimento,e quero mostrar as senhas que ja foram atendidas,so que só estou conseguindo imprimir o ultimo numero do TextField, não todos os numeros que eu ja coloquei la.
Tem esse tópico que seu amigo Pedro00 fez:
https://www.guj.com.br/t/como-faco-para-imprimir-numeros-que-restam-de-um-total/405841/6
Sim,mas tipo o dele é imprimir os que faltam para 10,eu quero imprimir os que eu ja escrevi,para fazer tipo uma lista com esses numeros.Eu estou fazendo o contrario dele.
Humm… então mostra como você está fazendo.
public String qsenhas(){
int Senhach = z;
String senhas = “”;
for(int a = (Senhach - 1); a<=10; a–){
senhas += " " + z;
}
return senhas.trim();
}
Tentei reverter o dele,mas n deu certo
Olha isso depende muito de como vocês estão gerando as senhas e como está a estrutura do projeto. Então partido do código que você postou, o correto seria:
public String qsenhas(){
int Senhach = z;
String senhas = "";
for(int a = (Senhach - 1); a<=10; a--){
senhas += " " + a;
}
return senhas.trim();
}
Uma solução mais robusta é você criar uma classe responsável por gerenciar a senhas.
Um detalhe importante é que os nomes de método e variáveis devem ser mais expressivos (as vezes pode ser um pouco difícil, mas você deve tentar)! Por exemplo o que significa qsenha e a variável z?
As senhas estao sendo colocadas pelo usuarios nesse caso, a codigo que vc enviou n fez nd aparentemente,eu tentei modificar e ficou a mesma coisa.
É um pessimo costume que eu tenho de colocar tds variaveis como letras,para mim fica facil entender,para os outros nem tanto,qsenha=quantidade de senhas,z=numeros colocados pelo usuarios
Vamos lá, por partes!
E elas ficam armazenadas aonde? Mostra esse trecho! Lembre-se de selecionar o código e apertar </>
na hora de postar o código aqui!
Mostra também como você fez!
public Integer gerar()
{
for (i=0; i<1; i++) {
z++;
if(z==10)
{
JOptionPane.showMessageDialog(null,"Ultima senha do dia");
}
else
{
}
//System.out.println(""+z);
}
return z;
}
Estão armazenadas em “z”.
Com base na solução desse tópico eu fiz esse exemplo:
public class GerenciadorSenhas{
private int totalSenhasDisponiveis;
private int proximaSenha;
private StringBuilder senhasChamadasString; //pode ser uma Lista também!
public GerenciadorSenhas(int total) {
totalSenhasDisponiveis = total;
senhasChamadasString = new StringBuilder();
proximaSenha = 1;
}
public int pegarSenha() {
if(totalSenhasDisponiveis == 0){
System.out.println("As senhas acabaram!!!");
return -1;
}
if(totalSenhasDisponiveis == 1){
System.out.println("Última senha do dia!!!");
}
totalSenhasDisponiveis--;
int senha = proximaSenha++;
senhasChamadasString.append(" " + senha);
return (senha);
}
public int getTotalSenhasDisponiveis(){
return totalSenhasDisponiveis;
}
public String getSenhasChamadas(){
String m = senhasChamadasString.toString().trim();
return ("[" + m + "]");
}
}
Classe Main:
class Main {
public static void main(String[] args) {
// Instanciando o gerenciador de senhas
GerenciadorSenhas gerenciador = new GerenciadorSenhas(10);
System.out.println("******BEM VINDO******");
System.out.println("\nFila de Atendimentos:");
int i = 1;
int totalDeSenha = gerenciador.getTotalSenhasDisponiveis();
//Apenas para testes
while(totalDeSenha > 0 && i <=6){
int senha = gerenciador.pegarSenha();
totalDeSenha = gerenciador.getTotalSenhasDisponiveis();
System.out.printf("Cliente: %d\nSenha: %d\n",i,senha);
System.out.printf("Diponiveis: %d\n\n",totalDeSenha);
i++;
}
System.out.println("Senhas Chamadas: "+ gerenciador.getSenhasChamadas());
}
}
Você precisa adptar e jogar em TextField ou JFrame!
Aqui um imagem do programa em execução: