package demo; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Font; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; /** * Creates the JFrame to house the GUI. * * @author uphusar. Created Oct 1, 2011. */ public class GUI extends JFrame implements ActionListener { // GUI Fields private TextArea textArea = new TextArea(); private JMenuBar menuBar = new JMenuBar(); private JMenu file = new JMenu(" File"); private JMenuItem blank = new JMenuItem(" New"); private JMenuItem open = new JMenuItem(" Open"); private JMenuItem save = new JMenuItem(" Save"); private JMenuItem exit = new JMenuItem(" Exit"); private FileIO fileIO; /** * Constructs the GUI for File I/O Demo. * */ public GUI() { // JFrame's Properties this.setTitle("Java Notepad"); this.setSize(new Dimension(1000, 800)); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); // JMenu Bar's Components this.menuBar.add(this.file); this.file.setMnemonic(KeyEvent.VK_F); // File Menu Components Dimension menuItem = new Dimension(100, 25); this.file.add(this.blank); this.file.add(this.save); this.file.add(this.open); this.file.addSeparator(); this.file.add(this.exit); this.blank.setMnemonic(KeyEvent.VK_N); this.save.setMnemonic(KeyEvent.VK_S); this.open.setMnemonic(KeyEvent.VK_P); this.exit.setMnemonic(KeyEvent.VK_E); this.blank.setPreferredSize(menuItem); this.save.setPreferredSize(menuItem); this.open.setPreferredSize(menuItem); this.exit.setPreferredSize(menuItem); this.blank.addActionListener(this); this.save.addActionListener(this); this.open.addActionListener(this); this.exit.addActionListener(this); // JFrame's Components this.textArea.setFont(new Font("Times New Roman", 0, 14)); this.add(this.menuBar, BorderLayout.NORTH); this.add(this.textArea, BorderLayout.CENTER); this.setVisible(true); this.fileIO = new FileIO(this, this.textArea); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == this.blank) { this.textArea.setText(""); } else if (e.getSource() == this.save) { this.fileIO.save(); } else if (e.getSource() == this.open) { this.fileIO.open(); } else if (e.getSource() == this.exit) { this.dispose(); } } }