@Override
    protected void paintComponent(Graphics g) {
      int 
        aw = getWidth(), // area szélessége pixelben
        ah = getHeight(), // area magassága pixelben
        lw = 2 * Au.margo + model.getWidth() * (pixel - 1) + 1, // labirintus szélesége pixelben
        lh = 2 * Au.margo + model.getHeight() * (pixel - 1) + 1, // labirintus magassága pixelben
        ex = (aw > lw ? (aw - lw) / 2 : 0), // eltolás x pixelben
        ey = (ah > lh ? (ah - lh) / 2 : 0); // eltolás y pixelben
      // fehér háttér
      g.setColor(Color.white);
      g.fillRect(0, 0, aw - 1, ah - 1);
      // labirintusrajz
      g.setColor(Color.black);
      Object[] lines = model.getLabyrinth();
      for (int i = 0; i < lines.length; i++) {
        Point2D.Double p = (Point2D.Double)lines[i];
        if (p.x == (int)p.x) {
          // függőleges
          g.drawLine(
            ex + Au.margo + (int)p.x * (pixel - 1),
            ey + Au.margo + (int)(p.y - 0.5) * (pixel - 1),
            ex + Au.margo + (int)p.x * (pixel - 1),
            ey + Au.margo + (int)(p.y + 0.5) * (pixel - 1)
            );
        }
        else {
          // vízszintes
          g.drawLine(
            ex + Au.margo + (int)(p.x - 0.5) * (pixel - 1),
            ey + Au.margo + (int)p.y * (pixel - 1),
            ex + Au.margo + (int)(p.x + 0.5) * (pixel - 1),
            ey + Au.margo + (int)p.y * (pixel - 1)
            );
        }
      }
    }