📄 mainframe.java
字号:
mFind.setText("\u67e5\u627e");
mFind.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
mFindActionPerformed(evt);
}
});
mOpt.add(mFind);
jMenuBar1.add(mOpt);
mHelp.setText("\u5e2e\u52a9");
mAbout.setText("\u5173\u4e8e");
mAbout.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent evt){
mAboutActionPerformed(evt);
}
});
mHelp.add(mAbout);
jMenuBar1.add(mHelp);
setJMenuBar(jMenuBar1);
pack();
}
private void mAboutActionPerformed(java.awt.event.ActionEvent evt){
JOptionPane.showConfirmDialog(this,
"通讯录--《Java程序设计大学教程》课程设计程序" +
"\n 版权归该书作者所有Copyright2005-2006 LiuYi","关于",
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE);
}
private void mDeleteActionPerformed(java.awt.event.ActionEvent evt){
delete();
}
private void mFindActionPerformed(java.awt.event.ActionEvent evt){
find();
}
private void mNewActionPerformed(java.awt.event.ActionEvent evt){
add();
}
private void mSaveActionPerformed(java.awt.event.ActionEvent evt){
save();
}
private void mOpenActionPerformed(java.awt.event.ActionEvent evt){
open();
}
private void btnSavaActionPerformed(java.awt.event.ActionEvent evt){
saveEdited();
}
private void btnFindActionPerformed(java.awt.event.ActionEvent evt){
find();
}
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt){
delete();
}
private void nameListMouseClicked(java.awt.event.MouseEvent evt){
p=(Person)(nameList.getSelectedValue());
txtName.setText(p.name);
txtZip.setText(p.zip);
txtAdd.setText(p.address);
txtPhone.setText(p.telephone);
txtCellphone.setText(p.cellphone);
txtEmail.setText(p.email);
}
private void btnNewActionPerformed(java.awt.event.ActionEvent evt){
add();
}
public static void main(String args[]){
java.awt.EventQueue.invokeLater(new Runnable(){
public void run(){
new MainFrame().setVisible(true);
}
});
}
//删除记录
private void delete(){
people.delete(nameList.getSelectedValue());
nameList.setListData(people.toArray());
txtName.setText("");
txtZip.setText("");
txtAdd.setText("");
txtPhone.setText("");
txtCellphone.setText("");
txtEmail.setText("");
}
//查找记录
private void find(){
String nam=JOptionPane.showInputDialog("请输入要查询的姓名");
p=people.find(nam);
if(p==null){
JOptionPane.showConfirmDialog(this,"查无此人!","查询结果",
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE);
}else{
txtName.setText(p.name);
txtZip.setText(p.zip);
txtAdd.setText(p.address);
txtPhone.setText(p.telephone);
txtCellphone.setText(p.cellphone);
txtEmail.setText(p.email);
}
}
//新增记录
private void add(){
people.addnew(new Person(txtName.getText(),
txtZip.getText(),txtAdd.getText(),
txtPhone.getText(),txtCellphone.getText(),
txtEmail.getText()));
nameList.setListData(people.toArray());
}
//打开文件
private void open(){
choice = fileChooser.showOpenDialog(this);
if(choice==JFileChooser.APPROVE_OPTION){
chosenFile=fileChooser.getSelectedFile();
}
deserializePeople(chosenFile.getAbsolutePath());
}
//保存文件
private void save(){
choice = fileChooser.showSaveDialog(this);
if(choice==JFileChooser.APPROVE_OPTION){
chosenFile=fileChooser.getSelectedFile();
serializePeople(people,chosenFile.getAbsolutePath());
}
}
//保存更改的记录
private void saveEdited(){
p=(Person)(nameList.getSelectedValue());
p.name=txtName.getText();
p.zip=txtZip.getText();
p.address=txtAdd.getText();
p.telephone=txtPhone.getText();
p.cellphone=txtCellphone.getText();
p.email=txtEmail.getText();
}
//串行化people对象数据
private void serializePeople(People people,String filename){
try {
FileOutputStream outStream=new FileOutputStream(filename);
ObjectOutputStream out=new ObjectOutputStream(outStream);
out.writeObject(people);
out.flush();
out.close();
}catch(Exception e){
System.out.println(e);
}
}
//去串行化people对象数据
private void deserializePeople(String filename){
people=null;
try{
FileInputStream inStream=new FileInputStream(filename);
ObjectInputStream in=new ObjectInputStream(inStream);
people=(People)in.readObject();
in.close();
nameList.setListData(people.toArray());
}catch(Exception e){
System.out.println(e);
}
}
//变量声明-不进行修改
private javax.swing.JButton btnDelete;
private javax.swing.JButton btnFind;
private javax.swing.JButton btnNew;
private javax.swing.JButton btnSave;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lblAdd;
private javax.swing.JLabel lblCellphone;
private javax.swing.JLabel lblEMail;
private javax.swing.JLabel lblName;
private javax.swing.JLabel lblPhone;
private javax.swing.JLabel lblZip;
private javax.swing.JMenuItem mAbout;
private javax.swing.JMenuItem mDelete;
private javax.swing.JMenuItem mExit;
private javax.swing.JMenu mFile;
private javax.swing.JMenuItem mFind;
private javax.swing.JMenu mHelp;
private javax.swing.JMenuItem mNew;
private javax.swing.JMenuItem mOpen;
private javax.swing.JMenu mOpt;
private javax.swing.JMenuItem mSave;
private javax.swing.JList nameList;
private javax.swing.JTextField txtAdd;
private javax.swing.JTextField txtCellphone;
private javax.swing.JTextField txtEmail;
private javax.swing.JTextField txtName;
private javax.swing.JTextField txtPhone;
private javax.swing.JTextField txtZip;
//变量声明结束
private Person p;
private People people=new People();
private File chosenFile;
private int choice;
private JFileChooser fileChooser=new JFileChooser();
}
public class People extends ArrayList implements Serializable {
public void addnew(Person p){
this.add(p);
}
public void delete(Object p){
this.remove(p);
}
public Person find(String nam){
Person p=null;
for(int i=0;i<this.size();i++){
p=(Person)(this.get(i));
if(p.name.equals(nam)){
break;
}else{
p=null;
}
}
return p;
}
}
class Person implements Serializable{
public Person(String n,String z,String a,String t,String c,String e){
name=n;
zip=z;
address=a;
telephone=t;
cellphone=c;
email=e;
}
public String toString(){
return name;
}
public String name;
public String zip;
public String address;
public String telephone;
public String cellphone;
public String email;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -