写一个通讯录信息管理系统课程设计Java
时间: 2023-07-18 08:11:13 浏览: 55
好的,下面是一个简单的通讯录信息管理系统的Java课程设计:
## 系统需求
系统需要实现以下功能:
1. 添加联系人信息;
2. 显示所有联系人信息;
3. 根据姓名、电话或地址查找联系人信息;
4. 根据电话或姓名删除联系人信息;
5. 根据电话或姓名修改联系人信息。
## 数据结构设计
在这个系统中,我们需要使用一个联系人类来存储每个联系人的信息。联系人类包含以下属性:
- 姓名;
- 电话;
- 地址;
为了方便查找和删除联系人,我们将联系人存储在一个ArrayList中。
## 界面设计
系统需要有一个简单的图形界面来与用户交互。界面应该包含以下组件:
- 一个文本框和一个添加按钮用于添加联系人信息;
- 一个表格用于显示所有联系人信息;
- 一个文本框和一个查找按钮用于查找联系人信息;
- 一个文本框和一个删除按钮用于删除联系人信息;
- 一个文本框和一个修改按钮用于修改联系人信息。
## 代码实现
以下是一个简单的通讯录信息管理系统的Java代码实现:
```java
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class ContactManager extends JFrame {
private ArrayList<Contact> contacts;
private DefaultTableModel tableModel;
private JTable table;
private JTextField nameField;
private JTextField phoneField;
private JTextField addressField;
public ContactManager() {
// 初始化联系人列表
contacts = new ArrayList<>();
// 初始化界面组件
initUI();
}
private void initUI() {
// 设置窗口大小
setSize(600, 400);
// 设置窗口关闭时退出程序
setDefaultCloseOperation(EXIT_ON_CLOSE);
// 添加联系人组件
nameField = new JTextField(20);
phoneField = new JTextField(20);
addressField = new JTextField(20);
JButton addButton = new JButton("添加");
addButton.addActionListener(e -> addContact());
add(nameField);
add(phoneField);
add(addressField);
add(addButton);
// 显示联系人列表组件
tableModel = new DefaultTableModel();
tableModel.addColumn("姓名");
tableModel.addColumn("电话");
tableModel.addColumn("地址");
table = new JTable(tableModel);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
// 查找联系人组件
JTextField searchField = new JTextField(20);
JButton searchButton = new JButton("查找");
searchButton.addActionListener(e -> searchContact(searchField.getText()));
add(searchField);
add(searchButton);
// 删除联系人组件
JTextField deleteField = new JTextField(20);
JButton deleteButton = new JButton("删除");
deleteButton.addActionListener(e -> deleteContact(deleteField.getText()));
add(deleteField);
add(deleteButton);
// 修改联系人组件
JTextField modifyField = new JTextField(20);
JButton modifyButton = new JButton("修改");
modifyButton.addActionListener(e -> modifyContact(modifyField.getText()));
add(modifyField);
add(modifyButton);
// 设置布局
setLayout(null);
nameField.setBounds(20, 20, 100, 20);
phoneField.setBounds(140, 20, 100, 20);
addressField.setBounds(260, 20, 100, 20);
addButton.setBounds(380, 20, 80, 20);
scrollPane.setBounds(20, 60, 560, 200);
searchField.setBounds(20, 280, 200, 20);
searchButton.setBounds(240, 280, 80, 20);
deleteField.setBounds(340, 280, 200, 20);
deleteButton.setBounds(560, 280, 80, 20);
modifyField.setBounds(20, 320, 200, 20);
modifyButton.setBounds(240, 320, 80, 20);
// 显示窗口
setVisible(true);
}
private void addContact() {
String name = nameField.getText();
String phone = phoneField.getText();
String address = addressField.getText();
Contact contact = new Contact(name, phone, address);
contacts.add(contact);
tableModel.addRow(new String[]{name, phone, address});
nameField.setText("");
phoneField.setText("");
addressField.setText("");
}
private void searchContact(String keyword) {
for (int i = 0; i < contacts.size(); i++) {
Contact contact = contacts.get(i);
if (contact.getName().equals(keyword) || contact.getPhone().equals(keyword) || contact.getAddress().equals(keyword)) {
table.setRowSelectionInterval(i, i);
table.scrollRectToVisible(table.getCellRect(i, 0, true));
return;
}
}
}
private void deleteContact(String keyword) {
for (int i = 0; i < contacts.size(); i++) {
Contact contact = contacts.get(i);
if (contact.getName().equals(keyword) || contact.getPhone().equals(keyword)) {
contacts.remove(i);
tableModel.removeRow(i);
return;
}
}
}
private void modifyContact(String keyword) {
for (int i = 0; i < contacts.size(); i++) {
Contact contact = contacts.get(i);
if (contact.getName().equals(keyword) || contact.getPhone().equals(keyword)) {
String name = nameField.getText();
String phone = phoneField.getText();
String address = addressField.getText();
contact.setName(name);
contact.setPhone(phone);
contact.setAddress(address);
tableModel.setValueAt(name, i, 0);
tableModel.setValueAt(phone, i, 1);
tableModel.setValueAt(address, i, 2);
nameField.setText("");
phoneField.setText("");
addressField.setText("");
return;
}
}
}
public static void main(String[] args) {
new ContactManager();
}
}
class Contact {
private String name;
private String phone;
private String address;
public Contact(String name, String phone, String address) {
this.name = name;
this.phone = phone;
this.address = address;
}
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
public String getAddress() {
return address;
}
public void setName(String name) {
this.name = name;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setAddress(String address) {
this.address = address;
}
}
```
以上代码实现了一个简单的通讯录信息管理系统,可以实现添加、显示、查找、删除、修改联系人信息的功能。