@Override public void paint(Graphics graphics) { super.paint(graphics); Graphics2D g = (Graphics2D) graphics; if (shot != null) { for (Zone zone : shot.getZones().getZonesList()) { if (!"default-zone".equalsIgnoreCase(zone.getId())) { try { Polygon p = zone.getShape().getPolygon(); if (zone.getId() == null) g.setColor(Color.BLUE); else if (zone.getId().equalsIgnoreCase("stumps")) g.setColor(Color.GREEN); else g.setColor(Color.RED); g.fillPolygon(p); g.setColor(g.getColor().darker()); g.drawPolygon(p); } catch (Exception ex) { // ex.printStackTrace(); } } } } Stroke s = g.getStroke(); g.setColor(Color.ORANGE); g.setStroke(new BasicStroke(5)); g.drawRect(150, 250, 100, 150); g.setStroke(s); if (ballLoc != null) { g.setColor(Color.BLACK); g.fillOval((int) ballLoc.getX() - 5, (int) ballLoc.getY() - 5, 10, 10); } }