⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 addressbook.java

📁 在ECLIPSE开发环境下使用JAVA编写的通讯录
💻 JAVA
字号:

package com.globalmethod.addressbook;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;

public class AddressBook extends JFrame
{
 //	设置事件处理
 // 关于	
 private class AboutAction extends AbstractAction
 {  
 	public void actionPerformed(ActionEvent e){
        JOptionPane.showMessageDialog(desktop, "JAVA地址簿   02计算机5班 王磊");
 }
 	public AboutAction()
 	{
      putValue("Name","关于");
      putValue("SmallIcon", new ImageIcon(getClass().getResource("images/about24.png")));
      putValue("ShortDescription", "关于");
      putValue("LongDescription", "02计算机5班 王磊");
      putValue("MnemonicKey", new Integer(65));
   
 }}
 
 // 新建
 private class NewAction extends AbstractAction
 {

     public void actionPerformed(ActionEvent e)
     {
         AddressBookEntryFrame entryFrame = createAddressBookEntryFrame();
         entryFrame.setAddressBookEntry(new AddressBookEntry());
         desktop.add(entryFrame);
         entryFrame.setVisible(true);
     }

     public NewAction()
     {
         putValue("Name", "新建");
         putValue("SmallIcon", new ImageIcon(getClass().getResource("images/New24.png")));
         putValue("ShortDescription", "新建");
         putValue("LongDescription", "新建地址簿");
         putValue("MnemonicKey", new Integer(78));
     }
 }

 // 保存
 private class SaveAction extends AbstractAction
 {

     public void actionPerformed(ActionEvent e)
     {
         AddressBookEntryFrame currentFrame = (AddressBookEntryFrame)desktop.getSelectedFrame();
         AddressBookEntry person = currentFrame.getAddressBookEntry();
         try
         {
             int personID = person.getPersonID();
             String operation = personID != 0 ? "更新数据" : "添加信息";
             if(personID == 0)
                 database.newPerson(person);
             else
                 database.savePerson(person);
             JOptionPane.showMessageDialog(desktop, operation + "成功");
         }
         catch(DataAccessException exception)
         {
             JOptionPane.showMessageDialog(desktop, exception, "DataAccessException", 0);
             exception.printStackTrace();
         }
         currentFrame.dispose();
     }

     public SaveAction()
     {
         putValue("Name", "保存");
         putValue("SmallIcon", new ImageIcon(getClass().getResource("images/Save24.png")));
         putValue("ShortDescription", "保存");
         putValue("LongDescription", "保存地址簿");
         putValue("MnemonicKey", new Integer(83));
     }
 }

 // 删除
 private class DeleteAction extends AbstractAction
 {

     public void actionPerformed(ActionEvent e)
     {
         AddressBookEntryFrame currentFrame = (AddressBookEntryFrame)desktop.getSelectedFrame();
         AddressBookEntry person = currentFrame.getAddressBookEntry();
         if(person.getPersonID() == 0)
         {
             JOptionPane.showMessageDialog(desktop, "您输入的信息还未保存,无法删除!");
             return;
         }
         try
         {
             database.deletePerson(person);
             JOptionPane.showMessageDialog(desktop, "删除成功!");
         }
         catch(DataAccessException exception)
         {
             JOptionPane.showMessageDialog(desktop, exception, "删除失败!", 0);
             exception.printStackTrace();
         }
         currentFrame.dispose();
     }

     public DeleteAction()
     {
         putValue("Name", "删除");
         putValue("SmallIcon", new ImageIcon(getClass().getResource("images/Delete24.png")));
         putValue("ShortDescription", "删除");
         putValue("LongDescription", "删除选定的地址簿");
         putValue("MnemonicKey", new Integer(68));
     }
 }

 // 查找
 private class SearchAction extends AbstractAction
 {

     public void actionPerformed(ActionEvent e)
     {
         String name = JOptionPane.showInputDialog(desktop, "请输入姓名");
         if(name != null)
         {
             AddressBookEntry person = database.findPerson(name);
             if(person != null)
             {
                 AddressBookEntryFrame entryFrame = createAddressBookEntryFrame();
                 entryFrame.setAddressBookEntry(person);
                 desktop.add(entryFrame);
                 entryFrame.setVisible(true);
             } else
             {
                 JOptionPane.showMessageDialog(desktop, "您输入的姓名 \"" + name+ "\" 未找到");
             }
         }
     }

     public SearchAction()
     {
         putValue("Name", "查找");
         putValue("SmallIcon", new ImageIcon(getClass().getResource("images/Find24.png")));
         putValue("ShortDescription", "查找");
         putValue("LongDescription", "从地址簿中查找");
         putValue("MnemonicKey", new Integer(114));
     }
 }

 // 退出
 private class ExitAction extends AbstractAction
 {

     public void actionPerformed(ActionEvent e)
     {
         shutDown();
     }

     public ExitAction()
     {
         putValue("Name", "退出");
         putValue("ShortDescription", "退出");
         putValue("LongDescription", "退出程序");
         putValue("MnemonicKey", new Integer(120));
     }
 }


 private JDesktopPane desktop;
 private AddressBookDataAccess database;
 Action aboutAction;
 Action newAction;
 Action saveAction;
 Action deleteAction;
 Action searchAction;
 Action exitAction;

 public AddressBook()
 {
     super("地址簿");
     
     // 连接数据库
     try
     {
         database = new MySQLDataAccess();
     }
     catch(Exception exception)
     {
         exception.printStackTrace();
         System.exit(1);
     }
     
     JToolBar toolBar = new JToolBar();
     JMenu fileMenu = new JMenu("文件(F)");
     fileMenu.setMnemonic('F');
     JMenu fileMenu2= new JMenu("关于(A)");
     fileMenu2.setMnemonic('A');
     aboutAction=new AboutAction();
     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 javax.swing.JToolBar.Separator());
     toolBar.add(searchAction);
     toolBar.add(new javax.swing.JToolBar.Separator());
     toolBar.add(aboutAction);
     fileMenu.add(newAction);
     fileMenu.add(saveAction);
     fileMenu.add(deleteAction);
     fileMenu.addSeparator();
     fileMenu.add(searchAction);
     fileMenu.addSeparator();
     fileMenu.add(exitAction);
     fileMenu2.add(aboutAction);
     JMenuBar menuBar = new JMenuBar();
     menuBar.add(fileMenu);
     menuBar.add(fileMenu2);
     setJMenuBar(menuBar);
     desktop = new JDesktopPane();
     Container c = getContentPane();
     c.add(toolBar, "North");
     c.add(desktop, "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(2);
     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();
 }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -