Exemplo n.º 1
0
  /** Overrides the paintComponent method to paint the horses images in their proper position. */
  @Override
  public synchronized void paintComponent(Graphics g) {
    // Draw the six images of the horses
    for (int i = 0; i < horsesPoint.size(); i++) {
      Image image = horsesImage.get(i);
      Interpolator<Object> interpolator = horsesPoint.get(i);
      g.drawImage(image, interpolator.getXPosition(), interpolator.getYPosition(), 25, 25, null);
    }

    // Draw the images of the bets
    for (Interpolator<BetContainer> b : betsPoint) {
      Image image = b.getObject().getBet().getBetToken().getImage();
      Interpolator<BetContainer> interpolator = b;
      g.drawImage(image, interpolator.getXPosition(), interpolator.getYPosition(), 40, 40, null);
      String danari = String.format("%d$", b.getObject().getBet().getValue());

      try {
        g.setColor(Color.BLACK);
        g.setFont(font.deriveFont(15F));
      } catch (NullPointerException e) {
        // Font not loaded
      }

      g.drawString(
          b.getObject().getPlayerName(),
          interpolator.getXPosition(),
          interpolator.getYPosition() + 51);
      g.drawString(danari, interpolator.getXPosition(), interpolator.getYPosition() + 65);
    }
    super.paintComponent(g);
  }
Exemplo n.º 2
0
  /**
   * Computes the interpolation of the new bets.
   *
   * @param bets
   */
  public synchronized void updateBets(List<BetContainer> bets) {

    // Add bets not in the list betsPoint
    for (BetContainer betContainer : bets) {
      boolean found = false;
      for (Interpolator<BetContainer> b : betsPoint) {
        if (b.getObject().equals(betContainer)) {
          found = true;
        }
      }
      if (!found) {
        betsPoint.add(
            new Interpolator<BetContainer>(
                baseX(betContainer.getBet().getBetToken().getStable() - 1, BET_Y_POSITION) - 10,
                BET_Y_POSITION,
                betContainer));
      }
    }

    // Remove bets in the list betsPoint that are not in bets
    Iterator<Interpolator<BetContainer>> bIter = betsPoint.iterator();
    while (bIter.hasNext()) {
      Interpolator<BetContainer> b = bIter.next();
      boolean found = false;
      for (BetContainer betContainer : bets) {
        if (b.getObject().equals(betContainer)) {
          found = true;
        }
      }
      if (!found) {
        bIter.remove();
      }
    }

    // Check if there's more than one interpolator overlapped and move them
    boolean overlap = false;
    do {
      overlap = false;
      for (Interpolator<BetContainer> i1 : betsPoint) {
        for (Interpolator<BetContainer> i2 : betsPoint) {
          if (i1 != i2
              && Math.abs(i1.destination.x - i2.destination.x) < 20
              && Math.abs(i1.destination.y - i2.destination.y) < 45) {
            i1.setNewPosition(i1.destination.x, i1.destination.y + 30, 1000);
            i2.setNewPosition(i2.destination.x, i2.destination.y - 30, 1000);
            i1.start();
            i2.start();
            overlap = true;
          }
        }
      }
    } while (overlap);
  }