📄 demopersonmanager.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.sql.*;
import java.util.ArrayList;
// 演示程序
public class DemoPersonManager {
public static void main(String[] args) {
// 初始化主画框,调整其位置和宽度,使得显示出来的按钮更漂亮
MainFrame.init("欢迎进入Java语言的GUI世界", MainFrame.getWidth()+500,
MainFrame.getHeight(), MainFrame.getStartX()-250,
MainFrame.getStartY()+50, "system");
try {
PersonManager manager = new PersonManager();
manager.createManagerPane(MainFrame.getContentPane());
} catch (Exception exc) {
exc.printStackTrace();
JOptionPane.showMessageDialog(MainFrame.getMainFrame(),
exc.getMessage(), "警告", JOptionPane.WARNING_MESSAGE);
}
// 启动主画框,并进行演示
MainFrame.start();
}
}
// 管理表Person的管理器
class PersonManager extends DatabaseManager implements ActionListener {
private Person person = null;
// 构造方法,主要是初始化person,调用它的open()方法建立与数据库的连接
public PersonManager() throws Exception {
person = new Person();
person.open();
}
// 创建用于管理人员信息的面板
public void createManagerPane(Container ground) throws Exception {
ArrayList data = person.findAll();
DatabaseTableColumn[] columns = person.getColumns();
String keyField = person.getKeyField();
model = new DatabaseTableModel(data, columns, keyField, true);
createManagerPane(ground, model);
addOperationButton("添加(A)", 'I', "添加新的人员信息", "APPEND", this);
}
// 当用户对管理器中的表格进行编辑时,调用person的update()方法修改数据库中相应内容
public void updateFieldValue(Object keyId, String modifyField, Object newValue) {
try {
person.update((String)keyId, modifyField, newValue);
} catch (Exception exc) {
exc.printStackTrace();
}
}
// 关闭数据库连接及关闭管理器界面
public void close() throws Exception {
person.close();
super.close();
}
// 在插入人员信息,录入并设置人员的信息
public PersonRecord addPerson() {
PersonRecord record = new PersonRecord();
// 此处可创建一对话框,让用户输入人员信息,以插入该人员信息
// 这里为简化起见,直接设置人员信息
record.id = "Koby"; record.name = "布莱恩特";
record.sex = false; record.birthday = new Date(80, 12, 11);
record.address = "美国洛杉矶"; record.resume = "著名NBA篮球运动员";
return record;
}
// 监听在管理器界面上添加的插入按钮,完成对人员信息的更新
public void actionPerformed(ActionEvent evt) {
String command = ((JButton)evt.getSource()).getActionCommand();
if (command.equals("APPEND")) {
// 插入人员信息,调用方法addPerson()让用户输入人员信息
PersonRecord personRecord = addPerson();
if (personRecord == null) return;
try {
// 调用Person的add()方法将用户输入的人员信息插入的数据表
person.add(personRecord);
} catch (Exception exc) {
exc.printStackTrace();
return;
}
Object[] rowData = person.recordToArray(personRecord);
// 调用DatabaseManager的addRow()方法将用户输入人员信息插入到Swing表格
addRow(rowData);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -