Boa noite amigos, estou desenvolvendo um trabalho para a universidade e estive enfrentando um problema nos últimos dias quanto a atualizar a view pelo controller. Eu tenho um método que inicializa um panel para cada jogador, mas para isso preciso saber o número de jogadores que irão participar. O problema está em passar o valor de um frame para o outro, através do controller. O valor sempre passa da view para o controller como igual a 0, já tentei de tudo.
private StradaController stradaController;
Classe principal:
/*
* Create the frame. */ public Principal() { super("Strada Romana"); stradaController = StradaController.getInstance(); stradaController.addObserver(this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(1500,800); setLocationRelativeTo(null); setLayout(new FlowLayout()); setVisible(true); initComponents(); } private void initComponents(){ stradaController.initializePlayerPanel(); }
Trecho da tela que seleciona os jogadores:
*public SelectionFrame() {*
setTitle("Strada Romana");*setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);*setBounds(100, 100, 500, 300);*setLocationRelativeTo(null);*setResizable(false);*setVisible(true);*stradaController = new StradaController(); *initComponents();*}*public void actionPerformed(ActionEvent arg0) {*
if(playerValidation()) { *stradaController.setPlayers(players);*setVisible(false);*new Principal();*}*
Os valores são passados através de uma checagem simples:
*if(players == 2) {*
*players = 2;*} else if (players == 3) {**players = 3;*} else if(players == 4) { **players = 4;*} else {**players = 5;*}*
Controller:
> @Override
*> public void setPlayers(int players) {  *
> 	this.numberPlayers = players;
> }