@Override
  public Consumer<Graphics2D> draw(float x, float y, int startColumn, int endColumn) {
    return g -> {
      g.setFont(myFont);
      int xAsInt = (int)x;
      int yAsInt = (int)y;
      if (x == xAsInt && y == yAsInt) { // avoid creating garbage if possible
        g.drawChars(myText, startColumn, endColumn - startColumn, xAsInt, yAsInt);
      }
      else {
        g.drawString(new String(myText, startColumn, endColumn - startColumn), x, y);
      }
    };
  }
@Override
  public Consumer<Graphics2D> draw(float x, float y, int startColumn, int endColumn)