@Override public void render(Graphics2D g2) { super.render(g2); g2.setColor(Color.BLACK); g2.fillRect(0, 0, 400, 300); g2.drawImage(coffeeMachineImage, 100, 0, null); BufferedImage img = null; if (coffeeBrew.getProgress() < coffeeBrew.getTargetNumber() / 3) { img = images[0]; } else if (coffeeBrew.getProgress() < (coffeeBrew.getTargetNumber() / 3) * 2) { img = images[1]; } else if (coffeeBrew.getProgress() < coffeeBrew.getTargetNumber()) { img = images[2]; } else { img = images[3]; } if (isComplete()) { img = images[3]; // show full thing when it's complete } g2.drawImage(img, 100, 0, null); if (stepOn < 3) { g2.drawImage(images[6 + stepOn], 100 + (30 * stepOn), 60, null); } if (stepOn == codes.length && !isComplete()) { // show brewing prompt when coffee is being made g2.drawImage(images[5], 120, 60, null); } // draw completed prompt on completion if (isComplete()) { g2.drawImage(images[4], 0, 0, null); } }