Fixed: synchronized on client UI

This commit is contained in:
rubenpirreram
2026-05-15 17:10:30 +02:00
parent d4b8de9e4f
commit 2c65ce0aa7
3 changed files with 49 additions and 41 deletions
@@ -53,6 +53,8 @@ public class ClientCallbackImpl extends UnicastRemoteObject implements IClientCa
*/ */
@Override @Override
public void onAction(NetworkEvent event) throws RemoteException { public void onAction(NetworkEvent event) throws RemoteException {
synchronized (clientController)
{
if(event.getIsError()) { if(event.getIsError()) {
clientController.view.showError(event.toString()); clientController.view.showError(event.toString());
} else { } else {
@@ -60,4 +62,5 @@ public class ClientCallbackImpl extends UnicastRemoteObject implements IClientCa
clientController.view.render(); clientController.view.render();
} }
} }
}
} }
@@ -156,6 +156,7 @@ public class TCPClient implements IClient {
e.printStackTrace(); e.printStackTrace();
break; break;
} }
synchronized (controller) {
if (read instanceof NetworkEvent event) { if (read instanceof NetworkEvent event) {
if (event.getIsError()) { if (event.getIsError()) {
controller.view.showError(event.toString()); controller.view.showError(event.toString());
@@ -168,6 +169,7 @@ public class TCPClient implements IClient {
controller.setModel(model); controller.setModel(model);
controller.view.render(); controller.view.render();
} }
}
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
e.printStackTrace(); e.printStackTrace();
break; break;
@@ -88,6 +88,8 @@ public class MainFXMLController {
public void render() { public void render() {
synchronized (controller)
{
if (old_state_stage==null) { if (old_state_stage==null) {
renderBackground(); renderBackground();
renderUpper(); renderUpper();
@@ -117,6 +119,7 @@ public class MainFXMLController {
old_state_stage=controller.miniModel.currentState.getGameStage(); old_state_stage=controller.miniModel.currentState.getGameStage();
old_state_username=controller.miniModel.currentState.getCurrentPlayer().getUserName(); old_state_username=controller.miniModel.currentState.getCurrentPlayer().getUserName();
}
// TODO: le info in sidepanel non vengono aggiornate sempre aggiornate, bisogna prima capire dove metterle // TODO: le info in sidepanel non vengono aggiornate sempre aggiornate, bisogna prima capire dove metterle
} }