title: JOptionPane.showMessageDialog not showing text
body: <p>I seem to be having some issues when using the JOptionPane.showMessageDialog() method.
  When I use the method the only thing that is set up correctly is the dialogs title. It doesn't want to display the text that I provide.</p>
  
  <p>Here's the code that I'm using to try and create an alert:</p>
  
  <pre><code> JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE);
  </code></pre>
  
  <p>The code above provides the image below:</p>
  
  <p><img src="https://i.stack.imgur.com/yjX9q.png" alt="Output I get"></p>
  
  <p>If someone could tell me what I'm doing wrong or if there is a different method that I'm supposed to be using, I would much appreciate it.</p>
  
  <p>Edit:</p>
  
  <p>My main class:
  This creates a GUI where the user enters information "Host" and "DisplayName". When they click "Connect" a new thread is created (the ClientConnectSocket).</p>
  
  <pre><code>public class Main extends JFrame {
  
  public static JPanel contentPane;
  private JTextField hostTxt;
  public static JTextField displayNameTxt;
  
  JLabel lblDisplayName = new JLabel("Display Name:");
  JButton btnConnect = new JButton("Connect");
  JLabel lblHost = new JLabel("Host:");
  
  
  public static String username = "None :(";
  public static String host = "localhost";
  
  public static boolean connected = false;
  
  /**
   * Launch the application.
   */
  public static void main(String[] args) {
      EventQueue.invokeLater(new Runnable() {
          public void run() {
              try {
                  Main frame = new Main();
                  frame.setVisible(true);
              } catch (Exception e) {
                  e.printStackTrace();
              }
          }
      });
  }
  
  /**
   * Create the frame.
   */
  public Main() {
      setType(Type.UTILITY);
      setTitle("Java Chat Client - v0.1");
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setBounds(100, 100, 390, 200);
      contentPane = new JPanel();
      this.setResizable(false);
      contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
      setContentPane(contentPane);
      contentPane.setLayout(null);
  
  
      lblHost.setBounds(60, 11, 56, 19);
      contentPane.add(lblHost);
  
      hostTxt = new JTextField();
      hostTxt.setBounds(165, 10, 103, 20);
      contentPane.add(hostTxt);
      hostTxt.setColumns(10);
  
  
      btnConnect.addActionListener(new ActionListener() {
          public void actionPerformed(ActionEvent arg0) {
              if (hostTxt.getText() == null || displayNameTxt.getText() == null){
  
              }else{
                  Thread ccs = new ClientConnectSocket(hostTxt.getText(), displayNameTxt.getText());
                  ccs.start();
                  while (!connected){
                      //System.out.println("Not connected yet..");
                      try {
                          Thread.sleep(500);
                      } catch (InterruptedException e) {
                          e.printStackTrace();
                      }
                  }
                  System.out.println("Yey, connected");
                  username = displayNameTxt.getText();
                  host = hostTxt.getText();
  
                  EventQueue.invokeLater(new Runnable() {
                      public void run() {
                          try {
                              Chat frame = new Chat();
                              frame.setVisible(true);
  
                          } catch (Exception e) {
                              e.printStackTrace();
                          }
                      }
                  });
                  dispose();
  
              }
          }
      });
      btnConnect.setBounds((this.getWidth()/2)- 70, 76, 89, 23);
  
      contentPane.add(btnConnect);
  
      displayNameTxt = new JTextField();
      displayNameTxt.setColumns(10);
      displayNameTxt.setBounds(165, 45, 103, 20);
      contentPane.add(displayNameTxt);
  
  
      lblDisplayName.setBounds(60, 41, 95, 29);
      contentPane.add(lblDisplayName);
  
      this.getRootPane().setDefaultButton(btnConnect);
  }   
  </code></pre>
  
  <p>ClientConnectSocket class:</p>
  
  <pre><code>public class ClientConnectSocket extends Thread{
  
  String host;
  String name;
  
  public ClientConnectSocket(String host, String displayName){
      this.host = host;
      this.name = displayName;
  }
  
  boolean b = true;
  
  public void run(){
      try{
          while (b){
              Socket server = new Socket(host, 6969);
              System.out.println("Sending info to try and connect.");
  
              BufferedWriter out = new BufferedWriter(new OutputStreamWriter(server.getOutputStream()));
              out.write("method=connect:displayName="+ name);
              out.flush();
  
              Thread.sleep(500);
  
              InputStream in = server.getInputStream();
  
              StringBuffer sb = new StringBuffer();
              byte[] buffer = new byte[1024];
              int buf;
              while ((buf = in.read(buffer)) != -1){
                  String line = new String(buffer, 0, buf);
  
                  sb.append(line);
              }
              in.close();
              System.out.println(sb.toString() + " || " + sb.toString().equalsIgnoreCase("connect"));
  
              if (sb.toString().equalsIgnoreCase("connect")){
                  //Allow them to connect
                  Main.connected = true;
              }else if(sb.toString().equalsIgnoreCase("invalid:Username")){
                  //Tell them they have username already taken;
                   JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE);
                  b = false;
              }
  
              server.close();
              out.close();
              in.close();
  
              b = false;
          }
      }catch (Exception e){
          System.exit(2);
          e.printStackTrace();
      }
  }
  </code></pre>