Trabajando en un proyecto de Java GUI / Canvas [cerrado]

Hola, soy nuevo en GUI y Canvas en Java. Estoy trabajando en un proyecto en el que necesitaré una GUI / Canvas (todavía confundida por la diferencia) que tiene tres marcos, supongo. Básicamente, se trata de un proyecto de elevador en el que a cada lado del lienzo hay un objeto elevador rectangular, y en el centro hay botones (apilados uno encima del otro) que se utilizan para representar los pisos (por lo tanto, si hace clic en el botón, el El elevador se mueve a la misma fila que el botón). Estoy atascado en cómo diseñar el lienzo para esto. He tenido algunas ideas con respecto a gridLayout y broderLayouts, pero todo es un desastre en este momento.

Gracias

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;


public class UI extends JFrame implements ActionListener 
{
ArrayList<JButton> buttonList = new ArrayList(); 
MyCanvas mainCanvas;

public UI()
{
  super("Example Frame");
    setSize(800,600);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setVisible(true);

  mainCanvas = new MyCanvas();

  JPanel mainPanel = new JPanel();

  mainPanel.setLayout(new GridLayout(1,3));

  JPanel buttonPanel = new JPanel();
  buttonPanel.setLayout(new GridLayout(12,1));

  //while(true)
  //{
   //   myCanvas.repaint();
    //}
  for(int i=1; i<13; i++)
  {   String s = Integer.toString(i);
      buttonPanel.add(new JButton(s));
  }
  add(mainPanel);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  mainPanel.add(buttonPanel, BorderLayout.CENTER);
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta