下面是一个简单的电话簿管理系统的设计与实现,使用Java的可视化编程。import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;class Contact { private String name; private String phoneNumber; public Contact(String name, String phoneNumber) { this.name = name; this.phoneNumber = phoneNumber; } public String getName() { return name; } public String getPhoneNumber() { return phoneNumber; }}class PhoneBook { private ArrayList<Contact> contacts; public PhoneBook() { contacts = new ArrayList<>(); } public void addContact(Contact contact) { contacts.add(contact); } public void removeContact(Contact contact) { contacts.remove(contact); } public ArrayList<Contact> searchContacts(String keyword) { ArrayList<Contact> results = new ArrayList<>(); for (Contact contact : contacts) { if (contact.getName().contains(keyword) || contact.getPhoneNumber().contains(keyword)) { results.add(contact); } } return results; }}public class PhoneBookManager extends JFrame implements ActionListener { private JTextField searchField; private JTextArea resultArea; private JButton addButton; private JButton searchButton; private PhoneBook phoneBook; public PhoneBookManager() { phoneBook = new PhoneBook(); setTitle("电话簿管理系统"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); searchField = new JTextField(20); resultArea = new JTextArea(10, 20); resultArea.setEditable(false); addButton = new JButton("添加联系人"); searchButton = new JButton("搜索联系人"); addButton.addActionListener(this); searchButton.addActionListener(this); JPanel panel = new JPanel(); panel.add(new JLabel("关键字搜索:")); panel.add(searchField); panel.add(searchButton); panel.add(new JScrollPane(resultArea)); panel.add(addButton); add(panel); pack(); setVisible(true); } public static void main(String[] args) { new PhoneBookManager(); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == addButton) { String name = JOptionPane.showInputDialog(this, "请输入联系人姓名:"); String phoneNumber = JOptionPane.showInputDialog(this, "请输入联系人电话号码:"); Contact contact = new Contact(name, phoneNumber); phoneBook.addContact(contact); resultArea.append("添加成功:" + name + " - " + phoneNumber + "\n"); } else if (e.getSource() == searchButton) { String keyword = searchField.getText(); ArrayList<Contact> contacts = phoneBook.searchContacts(keyword); resultArea.setText(""); for (Contact contact : contacts) { resultArea.append(contact.getName() + ": " + contact.getPhoneNumber() + "\n"); } } }}
这个程序使用了Java的Swing图形界面库来实现可视化界面。在主窗口中,你可以输入关键字搜索电话簿中的联系人,也可以点击"添加联系人"按钮添加新的联系人。
PhoneBook类负责管理联系人的增删改查操作。Contact类表示一个联系人对象,包含姓名和电话号码。
在PhoneBookManager类中,构造函数创建了图形界面并初始化相关组件,同时创建了一个PhoneBook实例用于管理联系人。`actionPerformed`方法用于处理按钮点击事件,根据不同的按钮执行不同的操作。点击"添加联系人"按钮时,弹出输入对话框并将新的联系人添加到电话簿中,同时在结果区域显示添加成功的信息。点击"搜索联系人"按钮时,根据关键字进行搜索,并将结果显示在结果区域。
请注意,这只是一个简单的示例,可能无法满足所有需求。你可以根据自己的要求对代码进行修改和扩展。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |