docs: public void appendMsg(final String msg) {
          if (!EventQueue.isDispatchThread()) {
              try {
                  EventQueue.invokeAndWait(new Runnable() {
  
                      @Override
                      public void run() {
                          appendMsg(msg);
                      }
                  });
              } catch (InvocationTargetException e) {
                  LOGGER.error("Failed to append message: ", e);
              } catch (InterruptedException ignore) {
              }
              return;
          }
  
          displayRandomTip();
          getLogPanel().append(msg);
          JScrollBar vertical = getLogJScrollPane().getVerticalScrollBar();
          vertical.setValue(vertical.getMaximum());
      }