I am working on a project which is a Checkout Simulation. I have the code to make it work run but i am struggling to understand and implement how to add graphics(in my case a square) once a certain condition is true. For example i have made my code so that it goes through random numbers and if 2,4,6 or 8 has been randomly generated, someone will be added to the queue and the same goes for if they are even numbers 1 or 3, someone is removed from the queue. I basically just want to know how to add a square to the screen once i have met my condition (for example, generating a 4 should add a square to the screen but it doesn't) ANY help would really be appreciated!
public class MainPanel extends JPanel {
    private Queue<String> tillQueue;
    private int rndNumber;
    private int currentLength;
    private ArrayList<Integer> lengthList;
    private double mean;
    private Random rand;
    private int MAXLENGTH;
    private static Random r = new Random();
    private static Random r2 = new Random();
    Color colour;
    private static final int IMAGE_SIZE = 600;
    private Timer timer;
    private int delay;
    private JButton startButton;
    private JButton stopButton;
    private BufferedImage buffer;
    JToolBar toolbar;
    public MainPanel() {
        startButton = new JButton("START");
        stopButton = new JButton("STOP");
        toolbar = new JToolBar();
        toolbar.add(startButton);
        toolbar.add(stopButton);
        this.buffer = new BufferedImage(IMAGE_SIZE, IMAGE_SIZE, BufferedImage.TYPE_INT_ARGB);
        setDoubleBuffered(false);
        StartActionHandler start = new StartActionHandler();
        StopActionHandler stop = new StopActionHandler();
        TimerEvent timerEvt = new TimerEvent();
        startButton.addActionListener(start);
        stopButton.addActionListener(stop);
        delay = 50;
        timer = new Timer(delay, timerEvt);
    }
    public class TimerEvent implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            //drawNext(buffer.getGraphics());
            for (int time = 1; time < 9; time++) {
                rndNumber = rand.nextInt(6) + 1; //generates random number
                if (rndNumber == 2 || rndNumber == 4 || rndNumber == 6 || rndNumber == 8) {
                    //time is added to queue                        
                    tillQueue.add(String.valueOf(time));
                    drawNext(buffer.getGraphics());
                    repaint();
                }
            }
        }
    }
    public class StartActionHandler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            timer.start();
        }
    }
    private void drawNext(Graphics g) {
        int x = r.nextInt(IMAGE_SIZE);
        int y = r.nextInt(IMAGE_SIZE);
        int red = r2.nextInt(255);
        int green = r2.nextInt(255);
        int blue = r2.nextInt(255);
        Color randomColour = new Color(red, green, blue);
        g.setColor(randomColour);
        g.fillRect(x, y, 10, 10);
        repaint();
    }
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(buffer, 0, 0, this);
    }
}
 
     
    
 
    