Scala: Dibujar tabla a consola

Necesito mostrar una tabla en una consola.

Mi solución simple, si la llamarías una "solución", es la siguiente:

  override def toString() = {
    var res = "\n"
      var counter = 1;
      res += stateDb._1 + "\n"
      res += "  +----------------------------+\n"
      res += "  +     State Table            +\n"
      res += "  +----------------------------+\n"
      for (entry <- stateDb._2) {
        res += "  | " + counter + "\t | " + entry._1 + " | " + entry._2 + " |\n"
        counter += 1;
      }
      res += "  +----------------------------+\n"
      res += "\n"
    res

  }

No tenemos que discutir esto

a se ve mal cuando se muestral código @b parece un poco desordenado

En realidad, se hizo esa pregunta para C #, pero también me gustaría conocer una buena solución para Scala.

Entonces, ¿cuál es una manera (agradable / buena / simple / lo que sea) de dibujar una tabla de este tipo en Scala a la consola?

-------------------------------------------------------------------------
|    Column 1     |    Column 2     |    Column 3     |    Column 4     |
-------------------------------------------------------------------------
|                 |                 |                 |                 |
|                 |                 |                 |                 |
|                 |                 |                 |                 |
-------------------------------------------------------------------------

Respuestas a la pregunta(4)

Su respuesta a la pregunta