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;
> }