package Project; import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import javax.swing.event.*; public class AddressBook extends JFrame { private JDesktopPane desktop; private AddressBookDataAccess database; Action newAction, saveAction, deleteAction, searchAction, exitAction; public AddressBook() { super("Address Book"); try { database = new DataAccess(); } catch (Exception exception) { exception.printStackTrace(); System.exit(1); } JToolBar toolBar = new JToolBar(); JMenu fileMenu = new JMenu("File"); fileMenu.setMnemonic('F'); newAction = new NewAction(); saveAction = new SaveAction(); saveAction.setEnabled(false); deleteAction = new DeleteAction(); deleteAction.setEnabled(false); searchAction = new SearchAction(); exitAction = new ExitAction(); toolBar.add(newAction); toolBar.add(saveAction); toolBar.add(deleteAction); toolBar.add(new JToolBar.Separator()); toolBar.add(searchAction); fileMenu.add(newAction); fileMenu.add(saveAction); fileMenu.add(deleteAction); fileMenu.addSeparator(); fileMenu.add(searchAction); fileMenu.addSeparator(); fileMenu.add(exitAction); JMenuBar menuBar = new JMenuBar(); menuBar.add(fileMenu); setJMenuBar(menuBar); desktop = new JDesktopPane(); Container c = getContentPane(); c.add(toolBar, BorderLayout.NORTH); c.add(toolBar, BorderLayout.CENTER); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { shutDown(); } }); Toolkit toolkit = getToolkit(); Dimension dimension = toolkit.getScreenSize(); setBounds(100, 100, dimension.width - 200, dimension.height - 200); setVisible(true); } private void shutDown() { database.close(); System.exit(0); } private AddressBookEntryFrame createAddressBookEntryFrame() { AddressBookEntryFrame frame = new AddressBookEntryFrame(); setDefaultCloseOperation(DISPOSE_ON_CLOSE); frame.addInternalFrameListener(new InternalFrameAdapter() { public void internalFrameActivated(InternalFrameEvent event) { saveAction.setEnabled(true); deleteAction.setEnabled(true); } public void internalFrameDeactivated(InternalFrameEvent event) { saveAction.setEnabled(false); deleteAction.setEnabled(false); } }); return frame; } public static void main(String args[]) { new AddressBook(); } private class NewAction extends AbstractAction { public NewAction() { } public void actionPerformed(ActionEvent e) { AddressBookEntryFrame entryFrame = createAddressBookEntryFrame(); entryFrame.setAddressBookEntry(new AddressBookEntry()); desktop.add(entryFrame); entryFrame.setVisible(true); } } private class SaveAction extends AbstractAction { public SaveAction() { } // save it public void actionPerformed(ActionEvent e) { } } private class DeleteAction extends AbstractAction { public DeleteAction() { putValue(NAME, "Delete"); putValue(SHORT_DESCRIPTION, "Delete"); putValue(LONG_DESCRIPTION, "Delete an address book entry"); putValue(MNEMONIC_KEY, new Integer('D')); } // delete it public void actionPerformed(ActionEvent e) { } } private class SearchAction extends AbstractAction { // setup action's name icon descriptions and mnemonic public SearchAction() { } // locate existing entry public void actionPerformed(ActionEvent e) { } } private class ExitAction extends AbstractAction { public ExitAction() { putValue(NAME, "Exit"); putValue(SHORT_DESCRIPTION, "Exit"); putValue(LONG_DESCRIPTION, "Terminate the program"); putValue(MNEMONIC_KEY, new Integer('x')); } public void actionPerformed(ActionEvent e) { shutDown(); } } }