【Java开源代码栏目提醒】:网学会员鉴于大家对Java开源代码十分关注,论文会员在此为大家搜集整理了“AddRecordFrame.java”一文,供大家参考学习
package addrecord;
import com.borland.jbcl.layout.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
/**
* Title: 数据库增加新的数据记录程序
* Description: 教学示范
* Copyright: Copyright (c) 2003
* Company: 北京师范大学计算机系
* @author 孙一林
* @version 1.0
*/
public class AddRecordFrame extends JFrame {
private JPanel contentPane;
private XYLayout xYLayout1 = new XYLayout(); // 构造XYLayout布局管理器
private Label label1 = new Label(); // 创建显示信息使用的组件
private Label label2 = new Label();
private Label label3 = new Label();
private Label label4 = new Label();
private Label label5 = new Label();
private TextField stunumField = new TextField();
private TextField nameField = new TextField();
private TextField ageField = new TextField();
private TextField sexField = new TextField();
private TextField departnameField = new TextField();
private Button addrecordButton = new Button();
private Button refreshButton = new Button();
Vector vector; // 声明一个向量对象
String title[] = {"","","年龄","性别","系名"}; // 二维表列名
Connection connection = null; // 声明Connection接口对象connection
ResultSet rs = null; // 定义数据库查询的结果集
Statement statement = null; // 定义查询数据库的Statement对象
AbstractTableModel tm; // 声明一个AbstractTableModel类对象tm
public AddRecordFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
label1.setText(""); // 初始化组件
contentPane.setLayout(xYLayout1);
this.setSize(new Dimension(439, 420));
this.setTitle("增加新的数据记录");
label2.setText("");
label3.setText("年龄");
label4.setText("性别");
label5.setText("系名");
addrecordButton.setLabel("添加记录");
refreshButton.setLabel("刷新");
addrecordButton.addActionListener(new java.awt.event.ActionListener() { // 设置addrecordButton按钮监听器
public void actionPerformed(ActionEvent e) {
addrecordButton_actionPerformed(e);
}
});
refreshButton.addActionListener(new java.awt.event.ActionListener() { // 设置refreshButton按钮监听器
public void actionPerformed(ActionEvent e) {
refreshButton_actionPerformed(e);
}
});
contentPane.add(label4, new XYConstraints(273, 235, 46, 30));
contentPane.add(label1, new XYConstraints(31, 235, 46, 30));
contentPane.add(label2, new XYConstraints(112, 235, 46, 30));
contentPane.add(label3, new XYConstraints(193, 235, 46, 30));
contentPane.add(label5, new XYConstraints(354, 235, 46, 30));
contentPane.add(sexField, new XYConstraints(271, 270, 63, 28));
contentPane.add(stunumField, new XYConstraints(28, 270, 63, 28));
contentPane.add(nameField, new XYConstraints(109, 270, 63, 28));
contentPane.add(ageField, new XYConstraints(190, 270, 63, 28));
contentPane.add(departnameField, new XYConstraints(352, 270, 63, 28));
contentPane.add(addrecordButton, new XYConstraints(88, 316, 82, 32));
contentPane.add(refreshButton, new XYConstraints(276, 316, 82, 32));
createtable(); // 在初始化函数中调用createtable()函数显示表格
}
void createtable() { // 定义createtable()函数
JTable table; // 声明一个JTable类对象table
JScrollPane scroll; // 声明一个滚动杠对象scroll
vector = new Vector(); // 创建向量对象
tm = new AbstractTableModel() { // 创建AbstractTableModel类对象tm
public int getColumnCount() { // 取得表格列数
return title.length;
}
public int getRowCount() { // 取得表格行数
return vector.size();
}
public Object getValueAt(int row, int column) { // 取得单元格中的属性值
if(!vector.isEmpty()) {
return ((Vector)vector.elementAt(row)).elementAt(column);
}
else {
return null;
}
}
public void setValueAt(Object value, int row, int column) { // 数据模型不可编辑,该方法设置为空
}
public String getColumnName(int column) { // 取得表格列名
return title[column];
}
public Class getColumnClass(int c) { // 取得列所属对象类
return getValueAt(0,c).getClass();
}
public boolean isCellEditable(int row, int column) {// 设置单元格不可编辑,为缺省实现
return false;
}
};
table = new JTable(tm); // 生成自己的数据模型
table.setToolTipText("Display Query Result"); // 设置帮助提示
table.setAutoResizeMode(table.AUTO_RESIZE_OFF); // 设置表格调整尺寸模式
table.setCellSelectionEnabled(false); // 设置单元格选择方式
table.setShowHorizontalLines(true); // 设置是否显示单元格之间的分割线
table.setShowVerticalLines(true);
scroll = new JScrollPane(table); // 给表格加上滚动杠
scroll.setBounds(6,20,540,250);
contentPane.add(scroll,new XYConstraints(16, 20, 395, 200));
}
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void addrecordButton_actionPerformed(ActionEvent e) { // 处理addrecordButton的ActionEvent
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 实例化JDBC-ODBC桥的驱动
String url = "jdbc:odbc:TestDbStu"; // 设置连接字符串
connection = DriverManager.getConnection(url); // 连接数据库
statement = connection.createStatement(); // 创建Statement接口对象
String sql = "insert into studentbase (,,年龄,性别,系名) values (" + Integer.parseInt(stunumField.getText()) +", '" + nameField.getText()+"'," +Integer.parseInt(ageField.getText())+",'"+sexField.getText()+"',"+"'"+departnameField.getText()+ "')";
statement.executeUpdate(sql); // 执行增加新的数据记录语句
stunumField.setText(""); // 清空显示信息组件
nameField.setText("");
ageField.setText("");
sexField.setText("");
departnameField.setText("");
}
catch(SQLException ex){ // 捕捉异常
System.out.println("\nERROR:----- SQLException -----\n");
while (ex != null) {
System.out.println("Message: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("ErrorCode: " + ex.getErrorCode());
ex = ex.getNextException();
}
}
catch(Exception ex ) {
ex.printStackTrace();
}
finally {
try {
if(statement != null) {
statement.close(); // 关闭Statement接口实例
}
if(connection != null) {
connection.close(); // 关闭Connection接口实例
}
}
catch (SQLException ex) {
System.out.println("\nERROR:----- SQLException -----\n");
System.out.println("Message: " + ex.getMessage( ));
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("ErrorCode: " + ex.getErrorCode());
}
}
}
void refreshButton_actionPerformed(ActionEvent e) { // 处理refreshButton的ActionEvent
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDrive
上一篇:
AddRecordForm.java
下一篇:
网络能耗监测系统管理端的研究与实现