title: How to use Wingdings font in Java Swing
body: <p>When I try to use the Wingdings font (or other symbol fonts), the text comes out as rectangles instead of the correct text.  How do I get the correct characters to show?</p>
  
  <pre><code>import java.awt.*;
  import javax.swing.*;
  
  public class WingdingsFontDisplay extends JFrame
  {
      public static void main(String[] args)
      {
          new WingdingsFontDisplay();
      }
  
      public WingdingsFontDisplay()
      {
          this.setSize(500,150);
          this.setTitle("Fun with Fonts");
          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
          //This shows that I do have "Wingdings" available
          GraphicsEnvironment g;
          g = GraphicsEnvironment.getLocalGraphicsEnvironment();
          String[] fonts = g.getAvailableFontFamilyNames();
          for(String f : fonts)
          {
              System.out.println(f);
          }
  
          //Displaying text in the Wingdings font shows rectangles
          JLabel wingdingsText = new JLabel("All work and no play makes Jack a dull boy");
          Font f1 = new Font("Wingdings", Font.PLAIN, 14);
          wingdingsText.setFont(f1);
          this.add(wingdingsText, BorderLayout.NORTH);
  
          //Displaying text in Arial works correctly
          JLabel arialText = new JLabel("All work and no play makes Jack a dull boy");
          Font f2 = new Font("Arial", Font.PLAIN, 14);
          arialText.setFont(f2);
          this.add(arialText, BorderLayout.SOUTH);
  
          this.setVisible(true);
      }
  }
  </code></pre>