1
resposta

[Dúvida] A lista de clientes não está exibindo na tela de Lista de Clientes - JavaFX

Olá, bom dia/tarde/noite. Estou tentando fazer um programa em interface JavaFX de um sistema de controle de contas bancárias, poupança e especial. Eu cadastro um cliente do tipo de Conta Poupança, mas mesmo inserindo os dados na tela de cadastro, após clicar no botão de cadastrar, quando vou a lista de clientes mesmo assim é exibido "Nenhum Cliente Registrado". Tentei várias alterações, principalmente quando a inicialização do Array Clientes entre os controllers, mas nenhuma deu certo até agora. O que eu teria que alterar? Poderiam me ajudar?

Estou enviando o RAR com os arquivos do programa, mas vou mandar por aqui os principais controllers envolvidos Link - https://we.tl/t-mzjd0LvxCB

Códigos: ListaClientesController.java - https://www.invertexto.com/ebgj55 SelecaoTipoContaController.java - https://www.invertexto.com/jgbj39 TelaInicialController.java - https://www.invertexto.com/nfhs03 Main - https://www.invertexto.com/fwxv98

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeInsira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Silvy! Como vai?

Pelo que percebi na sua descrição, parece que o problema está na comunicação entre os controllers. Quando você cria um novo cliente, ele não está sendo efetivamente adicionado à lista de clientes que é exibida na tela de Lista de Clientes.

Um ponto importante é garantir que você está utilizando a mesma instância da lista de clientes em todos os lugares. Se você estiver criando uma nova lista de clientes em cada controller, eles não vão compartilhar os mesmos dados.

Vou te dar um exemplo prático. Suponha que temos uma classe chamada DadosBanco que guarda uma lista de clientes. Quando você inicia o programa, você cria uma instância dessa classe e passa ela para todos os controllers. Dessa forma, quando você adiciona um cliente em um controller, ele estará disponível em todos os outros.

public class DadosBanco {
    private List<Cliente> clientes;

    public DadosBanco() {
        this.clientes = new ArrayList<>();
    }

    public List<Cliente> getClientes() {
        return clientes;
    }

    public void addCliente(Cliente cliente) {
        this.clientes.add(cliente);
    }
}

E nos seus controllers, você teria algo assim:

public class ListaClientesController {
    private DadosBanco dadosBanco;

    public ListaClientesController(DadosBanco dadosBanco) {
        this.dadosBanco = dadosBanco;
    }

    // ...
}

public class SelecaoTipoContaController {
    private DadosBanco dadosBanco;

    public SelecaoTipoContaController(DadosBanco dadosBanco) {
        this.dadosBanco = dadosBanco;
    }

    // ...
}

Então, quando você cria um novo cliente, você adiciona ele na lista de clientes do DadosBanco:

Cliente novoCliente = new Cliente(...);
dadosBanco.addCliente(novoCliente);

E quando você quer listar os clientes, você pega a lista do DadosBanco:

List<Cliente> clientes = dadosBanco.getClientes();

Espero que isso te ajude a resolver o problema. Se não for isso, por favor, me dê mais detalhes para que eu possa te ajudar melhor.

Espero ter ajudado e bons estudos!