⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demopersonmanager.java

📁 一个JDBC应用的例子
💻 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 + -