Reproducible on Yosemite. When the window is in native full screen mode, disposing it leaves the user with a black screen. To reproduce use the following app:
SwingUtilities.invokeLater(() -> {
JFrame f = new JFrame(" TEST ");
new JFrame().setVisible(true);
f.setLayout(new FlowLayout());
JButton button = new JButton(" Button ");
f.add(button);
f.setBounds(100, 100, 100, 100);
f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
f.setVisible(true);
FullScreenUtilities.setWindowCanFullScreen(f, true);
});