docs: private void initGraphics() {
          // prefill matrix with pixelOffColor
          for (int y = 0 ; y < rows ; y++) {
              for (int x = 0 ; x < cols ; x++) {
                  matrix[x][y] = pixelOffColor;
              }
          }
  
          if (Double.compare(getPrefWidth(), 0.0) <= 0 || Double.compare(getPrefHeight(), 0.0) <= 0 ||
              Double.compare(getWidth(), 0.0) <= 0 || Double.compare(getHeight(), 0.0) <= 0) {
              if (getPrefWidth() > 0 && getPrefHeight() > 0) {
                  setPrefSize(getPrefWidth(), getPrefHeight());
              } else {
                  setPrefSize(preferredWidth, preferredHeight);
              }
          }
  
          canvas = new Canvas(preferredWidth, preferredHeight);
          ctx = canvas.getGraphicsContext2D();
  
          getChildren().setAll(canvas);
          canvas.addEventHandler(MouseEvent.MOUSE_PRESSED, clickHandler);
      }