-1
I need to simulate the workings of a processor using queue concepts. This processor will be color, where the user adds the color they want to be processed and its run time, this color needs to enter a queue, as the user adds more colors, this queue needs to be in order and resized on the screen , if the user needs to remove a color, this will be done in the first colors I added.
Note: this whole screen was made only by dragging the components of java swing. 

I was able to add the buttons to the waiting list:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String cores = (String) cor.getSelectedItem();
    String seg = (String) segundos.getSelectedItem();
    JButton b1 = new JButton(cores + "/" + seg);
    b1.setSize(10, 10);
    b1.setVisible(true);
    queue.enqueue(new ColorTime(cores, 5));
    jPanel1.setLayout(new FlowLayout(FlowLayout.LEFT));
    jPanel1.add(b1);
    jPanel1.updateUI();
    //setting flow layout of right alignment
} 
And in the start option it’s calling the first color that was on the waiting list, now I want to take your time, run it and move on to the next color on the list. How to create a countdown with the time I spent together with the color?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    //Timer timer;
    //timer = new Timer();
    //timer.s
    while (item != null) {
        item = queue.dequeue();
        if (item != null) {
            switch (item.color) {
                case "Azul":
                    jPanel2.setBackground(Color.BLUE);
                    jTextField1.setBackground(Color.BLUE);
                    jTextField2.setText(item.color);
                    Timer t = new Timer(item.getTime(), action);
                    t.start();
                    break;
                case "Verde":
                    jPanel2.setBackground(Color.GREEN);
                    jTextField1.setBackground(Color.GREEN);
                    jTextField2.setText(item.color);
                    break;
                case "Vermelho":
                    jPanel2.setBackground(Color.RED);
                    jTextField1.setBackground(Color.RED);
                    jTextField2.setText(item.color);
                    break;
                case "Cinza":
                    jPanel2.setBackground(Color.GRAY);
                    jTextField1.setBackground(Color.GRAY);
                    jTextField2.setText(item.color);
                    break;
                case "Preto":
                    jPanel2.setBackground(Color.BLACK);
                    jTextField1.setBackground(Color.BLACK);
                    jTextField2.setText(item.color);
                    break;
                case "Roxo":
                    jPanel2.setBackground(Color.CYAN);
                    jTextField1.setBackground(Color.CYAN);
                    jTextField2.setText(item.color);
                    break;
                default:
                    System.out.println("Esta não é uma cor válida!");
            }
        }
    }
}                                        
My class on the list:
public class MyQueue <T> {
    private T[] queue;
    private int front =  0,
        back  =  0,
        size;
    /**
     * Constructs an empty queue with an initial capacity of ten.
    */
    public MyQueue () {
    this.size = 10;
    this.queue = (T[])new Object[size];
    }
    /**
     * Constructs an empty queue with the specified initial capacity.
     * @param size
     */
    public MyQueue (int size) {
    this.size = size;
    this.queue = (T[])new Object[size];
    }
    /**
     * Returns true if the queue contains no elements.
     * @return
     */
    public boolean isEmpty () {
    return back == front;
    }
    /**
     * Returns true if the queue is full.
     * @return
     */
    public boolean isFull () {
    return front == size - 1;
    }
    /**
     * Returns the size of the queue.
     * @return
     */
    public int size () {
    return front - back;
    }
    /**
     * Returns the element that is the end of the queue.
     * If the referenced element does not exist null is returned.
     * @return
     */
    public T front () {
    try {
        return queue[front-1];
    } catch (ArrayIndexOutOfBoundsException e) {
        return null;
    }
    }
    /**
     * Returns the object that is the beginning of the queue
     * If the referenced element does not exist null is returned.
     * @return
     */
    public T back () {
    try {
        return queue[back];
    } catch (ArrayIndexOutOfBoundsException e) {
        return null;
    }
    }
    /**
     * Adds an element in the queue.
     * @param element
     */
    public void enqueue (T element) {   
    if (isFull()) {
        System.out.println("Error: queue overflow");
    } else {
        queue[front++] = element;
    }
    }
    /**
     *  Removes an element in the queuein the queue and return the first element.
         *  In case of error return null.
     * @return
     */
    public T dequeue () {
    if (isEmpty()) {
        System.out.println("Error: queue underflow");
        return null;
    } else {
        T item = queue[back++];
        return item;
    }
    }
    /**
     * Removes all elements from the queue.
     */
    public void clear () {
    if (!isEmpty()) {
        for (int i = 0; i < front; i++) {
            queue[i] = null;
        }
    }
        back = 0;
    front = 0;
    }
    /**
     * Prints all elements that are in the queue.
     */
    public void print () {
    if (!isEmpty()) {
        for (int i = back; i < front; i++) {
            System.out.print(queue[i] + " ");
        }
    }
    }
Too broad for a question. Try to develop and will post questions about very specific parts. The way someone is would have to not only develop, but think of the model, a minimum specification. My suggestion is the following: Instead of worrying about the graphical interface, worry about your model, about its classes (attributes, methods and relationships).
– cantoni
Let’s take parts. First you need a model. The model is a set of classes that models your business objects: Colors, queues, processing time, etc. Your model has to be totally independent, self-contained and separate from the swing. Once your model is ready, you make the swing talk to it. Sharing your project like this makes it easier for you.
– Victor Stafusa
There is also the problem that there is a data structure implemented in the hand there. There may be bugs in it as well.
– Pablo Almeida