code: @Override
      protected Container createMessageArea() {
          JPanel top = new JPanel();
          top.setName("OptionPane.messageArea");
          top.setLayout(new BorderLayout());
  
          /* Fill the body. */
          Container body = new JPanel(new GridBagLayout());
          Container realBody = new JPanel(new BorderLayout());
  
          body.setName("OptionPane.body");
          realBody.setName("OptionPane.realBody");
  
          if (getIcon() != null) {
              JPanel sep = new JPanel();
              sep.setName("OptionPane.separator");
              sep.setPreferredSize(new Dimension(15, 1));
              realBody.add(sep, BorderLayout.BEFORE_LINE_BEGINS);
          }
          realBody.add(body, BorderLayout.CENTER);
  
          GridBagConstraints cons = new GridBagConstraints();
          cons.gridx = cons.gridy = 0;
          cons.gridwidth = GridBagConstraints.REMAINDER;
          cons.gridheight = 1;
  
          SeaGlassContext context = getContext(optionPane, ENABLED);
          cons.anchor = context.getStyle().getInt(context, "OptionPane.messageAnchor", GridBagConstraints.CENTER);
          context.dispose();
  
          cons.insets = new Insets(0, 0, 3, 0);
  
          addMessageComponents(body, cons, getMessage(), getMaxCharactersPerLineCount(), false);
          top.add(realBody, BorderLayout.CENTER);
  
          addIcon(top);
          return top;
      }
docs: Called from {@link #installComponents} to create a {@code Container}
  containing the body of the message. The icon is the created by calling
  {@link #addIcon}.