@Override
    public void update(final Observable o, Object arg) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                GameModel model = (GameModel) o;
                int[][] matrix = model.getMatrix();
                Player actualPlayer = model.getActualPlayer();
                Player player1 = model.getPlayer1();
                Player player2 = model.getPlayer2();

                jPanelPlayground.removeAll();

                for (int row = 0; row < 6; row++) {
                    for (int col = 0; col < 7; col++) {
                        jPanelPlayground.add(new Kreis(matrix[row][col]));
                    }
                }

                revalidate();
                repaint();

                if (actualPlayer.getId() != player1.getId()) {
                    if (!(player2 instanceof LocalPlayer)) {
                        disableColumnButtons();
                    }
                    jLabelGegner.setBorder(borderline);
                    jLabelSpieler.setBorder(null);
                } else {
                    if (!(player2 instanceof LocalPlayer)) {
                        enableColumnButtons();
                    }

                    jLabelSpieler.setBorder(borderline);
                    jLabelGegner.setBorder(null);
                }
            }
        });
    }