package example5_1_Annealing; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import java.awt.Menu; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class ImageGUI extends JFrame { private ImagePanel imagePanel; public ImageGUI() { imagePanel = new ImagePanel(); setTitle("Simulated Annealing"); setSize(512, 512 + 100); // TODO: How to make window fit its contents better? (pack() works sometimes) JMenuBar bar = new JMenuBar(); JMenu menu = new JMenu("file"); JMenuItem item = new JMenuItem("clear"); this.setJMenuBar(bar); bar.add(menu); menu.add(item); item.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { imagePanel.setVisible(false); } }); add(imagePanel); // The following line may cause a memory // leak. //imagePanel.startBlurring(); // This breaks some GUI rules, but we haven't covered how to do them yet. setVisible(true); } public static void main(String[] ignored) { new ImageGUI(); } }