写一个通讯管理系统,图形界面必须采用AWT+SWING实现,数据存储用array,个编写主界面实现添加,修改,删除,查看通讯人信息的功能java
时间: 2023-06-26 18:04:09 浏览: 47
以下是一个简单的通讯管理系统代码示例,包含基本的增删改查功能:
```
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class CommunicationManager extends JFrame implements ActionListener {
private DefaultTableModel tableModel;
private JTable table;
private JTextField nameInput;
private JTextField phoneInput;
public CommunicationManager() {
super("通讯管理系统");
// 创建表格
tableModel = new DefaultTableModel(new Object[][]{}, new String[]{"姓名", "电话号码"});
table = new JTable(tableModel);
// 创建添加、修改、删除、查看按钮
JButton addButton = new JButton("添加");
addButton.addActionListener(this);
JButton modifyButton = new JButton("修改");
modifyButton.addActionListener(this);
JButton deleteButton = new JButton("删除");
deleteButton.addActionListener(this);
JButton viewButton = new JButton("查看");
viewButton.addActionListener(this);
// 创建输入框和标签
JLabel nameLabel = new JLabel("姓名:");
nameInput = new JTextField(10);
JLabel phoneLabel = new JLabel("电话号码:");
phoneInput = new JTextField(10);
// 创建输入框和标签面板
JPanel inputPanel = new JPanel();
inputPanel.setLayout(new FlowLayout());
inputPanel.add(nameLabel);
inputPanel.add(nameInput);
inputPanel.add(phoneLabel);
inputPanel.add(phoneInput);
// 创建按钮面板
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());
buttonPanel.add(addButton);
buttonPanel.add(modifyButton);
buttonPanel.add(deleteButton);
buttonPanel.add(viewButton);
// 创建主面板
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BorderLayout());
mainPanel.add(new JScrollPane(table), BorderLayout.CENTER);
mainPanel.add(inputPanel, BorderLayout.NORTH);
mainPanel.add(buttonPanel, BorderLayout.SOUTH);
// 设置窗口大小并显示
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setContentPane(mainPanel);
setVisible(true);
}
public static void main(String[] args) {
new CommunicationManager();
}
@Override
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (command.equals("添加")) {
String name = nameInput.getText();
String phone = phoneInput.getText();
tableModel.addRow(new Object[]{name, phone});
nameInput.setText("");
phoneInput.setText("");
} else if (command.equals("修改")) {
int rowIndex = table.getSelectedRow();
if (rowIndex >= 0) {
String name = nameInput.getText();
String phone = phoneInput.getText();
tableModel.setValueAt(name, rowIndex, 0);
tableModel.setValueAt(phone, rowIndex, 1);
nameInput.setText("");
phoneInput.setText("");
}
} else if (command.equals("删除")) {
int rowIndex = table.getSelectedRow();
if (rowIndex >= 0) {
tableModel.removeRow(rowIndex);
nameInput.setText("");
phoneInput.setText("");
}
} else if (command.equals("查看")) {
int rowIndex = table.getSelectedRow();
if (rowIndex >= 0) {
String name = (String) tableModel.getValueAt(rowIndex, 0);
String phone = (String) tableModel.getValueAt(rowIndex, 1);
nameInput.setText(name);
phoneInput.setText(phone);
}
}
}
}
```
这个代码示例使用了AWT和Swing库来创建图形界面,并使用了一个二维数组作为数据存储。在主界面中创建了一个表格用于显示通讯人信息,并添加了添加、修改、删除、查看等按钮和输入框。当用户点击按钮时,程序会根据不同的操作执行相应的功能,例如添加一条信息、修改已有信息、删除已有信息、查看已有信息等。