📄 addressbook.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 + -