SWT Java Tutorial

SWT provides the FontDialog class to display the common font selection dialog.
FontDialog's open() method returns a FontData object (or null if the user cancels the dialog), which you can use to create a Font.
SWT uses two classes to represent fonts:
Font represents the onscreen font, and
Font objects represent operating system resources, and you must dispose any you create.
FontData represents the data used to construct the onscreen font.
FontData objects contain only data, and aren't operating system resources, so they aren't disposed.

import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.FontData;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FontDialog;
import org.eclipse.swt.widgets.Shell;
public class FontSelectionDialogDisplay {
  public static void main(String[] args) {
    Display display = new Display();
    final Shell shell = new Shell(display);
    FontDialog dlg = new FontDialog(shell);
    FontData fontData = dlg.open();
    if (fontData != null) {
      Font font = new Font(shell.getDisplay(), fontData);
      font.dispose();
    }
    
    display.dispose();
  }
}
Caution: Don't dispose a font while your application is still using it.