/**
* @(#)StudentSystem.java
*
*
* @author
* @version 1.00 2012/10/31
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.JTableHeader;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
AddForm() {
super("添加数据");
setSize(400, 300);
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnOk);
pan4.add(btnClear);
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan, "Center");
getContentPane().add(pan4, "South");
btnOk.addActionListener(this);
btnClear.addActionListener(this);
setVisible(true);
txtName.requestFocus();
}
if (ae.getSource() == btnClear) {
txtName.setText("");
txtDate.setText("");
txtScore.setText("");
txtName.requestFocus();
} else if (ae.getSource() == btnOk) {
String strName
= txtName.
getText();
String strDate
= txtDate.
getText();
String strScore
= txtScore.
getText();
if (strName.equals(""))
else if (strDate.equals(""))
else if (strScore.equals(""))
else {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ex.printStackTrace();
}
try {
stm = cnn.createStatement();
ex.printStackTrace();
}
try {
rs = stm.executeQuery("select * from 成绩表 where 学号='"
+ strName + "'");
if (rs.next()) {
} else // 否则插入记录
{
// System.out.println("insert into 成绩表 values('"+strName+"',#"+strDate+"#,"+strScore+")");
stm.executeUpdate("insert into 成绩表 values('" + strName
+ "','" + strDate + "'," + strScore + ")");
}
// 断开连接
stm.close();
cnn.close();
System.
out.
println("SQLException:" + ex.
getMessage());
}
}
}
}
public static void main
(String[] args
) {
new AddForm();
}
}
class BrowseForm
extends JFrame {
String[] str
= { "学号",
"出生日期",
"成绩" };
BrowseForm() {
super("浏览数据");
setSize(400, 300);
int i = 0, j = 0;
int row;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
stmt = conn.createStatement();
rs = stmt.executeQuery("select COUNT(*) as a from 成绩表");
rs.next();
row = rs.getInt("a");
rs.close();
rs = stmt.executeQuery("select * from 成绩表");
while (rs.next()) {
data[i][j++] = rs.getString("学号");
data[i][j++] = rs.getDate("出生日期");
data
[i
][j
] = new Integer(rs.
getInt("成绩"));
i++;
j = 0;
}
table
= new JTable(data, str
);
head = table.getTableHeader();
getContentPane().add(head, "North");
getContentPane().add(jsp, "Center");
rs.close();
stmt.close();
conn.close();
e.printStackTrace();
}
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
setVisible(true);
}
public static void main
(String[] args
) {
new BrowseForm();
}
}
DeleteForm() {
super("删除数据");
setSize(400, 300);
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnQuery);
pan4.add(btnDel);
pan4.add(btnCancel);
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan, "Center");
getContentPane().add(pan4, "South");
btnQuery.addActionListener(this);
btnDel.addActionListener(this);
btnCancel.addActionListener(this);
btnDel.setEnabled(false);
txtDate.setEditable(false);
txtScore.setEditable(false);
setVisible(true);
txtName.requestFocus();
}
/*
* if(ae.getSource()==btnCancel){ try { if(stm!=null) stm.close();
* if(cnn!=null) cnn.close(); } catch (SQLException ex) {
* ex.printStackTrace(); } this.dispose(); } else
* if(ae.getSource()==btnQuery){ try{
* Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
* cnn=DriverManager.getConnection("jdbc:odbc:MyDB","","");
* stm=cnn.createStatement(); rs=stm.executeQuery("select * from 成绩表
* where 学号 ='"+txtName.getText()+"'"); if(rs.next()){
* txtName.setText(rs.getString("学号"));
* txtDate.setText(rs.getDate("出生日期").toString()); txtScore.setText(new
* Integer(rs.getInt("成绩")).toString ()); btnDel.setEnabled(true);
* }else{ JOptionPane.showMessageDialog(this,"不存在该记录!");
* btnDel.setEnabled(false); txtName.setText(""); txtScore.setText("");
* txtDate.setText(""); } }catch(Exception e){ e.printStackTrace(); }
* }else if(ae.getSource()==btnDel){ try {
* if(JOptionPane.YES_OPTION==JOptionPane.showConfirmDialog
* (this,"确定要删除该记录?","信息",JOptionPane.YES_NO_OPTION)){
* stm.executeUpdate("delete from 成绩表 where 学号
* ='"+txtName.getText()+"'"); btnDel.setEnabled(false);
* txtName.setText(""); txtScore.setText(""); txtDate.setText(""); } }
* catch (SQLException ex) { ex.printStackTrace(); } }
*/
}
public static void main
(String[] args
) {
new DeleteForm();
}
}
LoginForm() {
super("用户登录");
setSize(300, 200);
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labPwd);
pan2.add(txtPwd);
pan.add(pan1);
pan.add(pan2);
pan3.add(btnOk);
pan3.add(btnCancel);
pan4.add(pan);
getContentPane().add(pan4, "Center");
getContentPane().add(pan3, "South");
txtName.addActionListener(this);
txtPwd.addActionListener(this);
btnOk.addActionListener(this);
btnCancel.addActionListener(this);
setVisible(true);
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
ex.printStackTrace();
}
try {
stm = cnn.createStatement();
ex.printStackTrace();
}
txtName.requestFocus();
}
if (ae.getSource() == txtName)
txtPwd.requestFocus();
else if (ae.getSource() == txtPwd)
btnOk.requestFocus();
else if (ae.getSource() == btnCancel) {
txtName.setText("");
txtPwd.setText("");
txtName.requestFocus();
} else if (ae.getSource() == btnOk) {
String str
= "select * from 用户表 where 用户名='" + txtName.
getText()
+ "'and 密码='" + new String(txtPwd.
getPassword()) + "'";
try {
rs = stm.executeQuery(str);
ex.printStackTrace();
}
try {
if (rs.next()) {
rs.close();
stm.close();
cnn.close();
new MainForm().setVisible(true);
this.dispose();
} else {
JOptionPane.
showMessageDialog(this,
"用户名或密码不正确!",
"信息",
}
ex.printStackTrace();
}
}
}
public static void main
(String[] args
) {
new LoginForm();
}
}
ModifyForm() {
super("修改数据");
setSize(400, 300);
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnQuery);
pan4.add(btnModify);
pan4.add(btnCancel);
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan, "Center");
getContentPane().add(pan4, "South");
btnQuery.addActionListener(this);
btnModify.addActionListener(this);
btnCancel.addActionListener(this);
btnModify.setEnabled(false);
txtDate.setEditable(false);
txtScore.setEditable(false);
setVisible(true);
txtName.requestFocus();
}
if (ae.getSource() == btnCancel) {
try {
if (stm != null)
stm.close();
if (cnn != null)
cnn.close();
ex.printStackTrace();
}
this.dispose();
} else if (ae.getSource() == btnQuery) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
stm = cnn.createStatement();
rs = stm.executeQuery("select * from 成绩表 where 学号='"
+ txtName.getText() + "'");
if (rs.next()) {
txtName.setText(rs.getString("学号"));
txtScore.
setText(new Integer(rs.
getInt("成绩")).
toString());
txtDate.setText(rs.getDate("出生日期").toString());
btnModify.setEnabled(true);
txtDate.setEditable(true);
txtScore.setEditable(true);
} else {
btnModify.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
txtDate.setEditable(false);
txtScore.setEditable(false);
}
e.printStackTrace();
}
} else if (ae.getSource() == btnModify) {
try {
System.
out.
println("Update 成绩表 set 出生日期=#" + txtDate.
getText()
+ "#,成绩=" + txtScore.getText() + " where 学号='"
+ txtName.getText() + "'");
stm.executeUpdate("Update 成绩表 set 出生日期=#" + txtDate.getText()
+ "#,成绩=" + txtScore.getText() + " where 学号='"
+ txtName.getText() + "'");
btnModify.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
txtDate.setEditable(false);
txtScore.setEditable(false);
stm.close();
cnn.close();
e.printStackTrace();
}
}
}
public static void main
(String[] args
) {
new ModifyForm();
}
}
NumberQueryForm() {
super("按学号查询");
setSize(400, 300);
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnQuery);
pan4.add(btnCancel);
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan, "Center");
getContentPane().add(pan4, "South");
btnQuery.addActionListener(this);
btnCancel.addActionListener(this);
txtDate.setEditable(false);
txtScore.setEditable(false);
setVisible(true);
txtName.requestFocus();
}
if (ae.getSource() == btnCancel) {
try {
if (stm != null)
stm.close();
if (cnn != null)
cnn.close();
ex.printStackTrace();
}
this.dispose();
} else if (ae.getSource() == btnQuery) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
stm = cnn.createStatement();
rs = stm.executeQuery("select * from 成绩表 where 学号='"
+ txtName.getText() + "'");
if (rs.next()) {
txtName.setText(rs.getString("学号"));
txtScore.
setText(new Integer(rs.
getInt("成绩")).
toString());
txtDate.setText(rs.getDate("出生日期").toString());
} else {
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
txtName.requestFocus();
}
e.printStackTrace();
}
}
}
public static void main
(String[] args
) {
new NumberQueryForm();
}
}
String[] str
= { "学号",
"出生日期",
"成绩" };
ScoreQueryForm() {
super("按成绩查询");
setSize(400, 300);
pan1.add(labScore);
pan1.add(txtScore);
pan1.add(btnQuery);
getContentPane().add(pan1, "North");
table
= new JTable(data, str
);
head = table.getTableHeader();
pan2.add(head, "North");
pan2.add(jsp, "Center");
getContentPane().add(pan2, "Center");
btnQuery.addActionListener(this);
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
setVisible(true);
}
if (ae.getSource() == btnQuery) {
int i, j, row;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
stmt = conn.createStatement();
rs = stmt
.executeQuery("select COUNT(*) as rowcount from 成绩表 where 成绩="
+ txtScore.getText());
rs.next();
row = rs.getInt("rowcount");
rs.close();
rs = stmt.executeQuery("select * from 成绩表 where 成绩="
+ txtScore.getText());
i = 0;
j = 0;
while (rs.next()) {
data[i][j++] = rs.getString("学号");
data[i][j++] = rs.getDate("出生日期");
data
[i
][j
] = new Integer(rs.
getInt("成绩"));
i++;
j = 0;
}
pan2.removeAll();
getContentPane().remove(pan2);
table
= new JTable(data, str
);
head = table.getTableHeader();
pan2.add(head, "North");
pan2.add(jsp, "Center");
getContentPane().add(pan2, "Center");
this.validate();
rs.close();
stmt.close();
conn.close();
e.printStackTrace();
}
}
}
public static void main
(String[] args
) {
new ScoreQueryForm();
}
}
class MyPanel
extends JPanel {
Image img
= Toolkit.
getDefaultToolkit().
getImage("c:/a.jpg");
g.drawImage(img, 0, 0, this);
}
}
MainForm() {
super("学生成绩管理系统");
setSize(700, 630);
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
mSystem.add(mExit);
mOperate.add(mAdd);
mOperate.add(mDel);
mOperate.add(mModify);
mOperate.add(mBrowse);
mQuery.add(mNumber);
mQuery.add(mScore);
mHelp.add(mAbout);
mBar.add(mSystem);
mBar.add(mOperate);
mBar.add(mQuery);
mBar.add(mHelp);
setJMenuBar(mBar);
mExit.addActionListener(this);
mAdd.addActionListener(this);
mDel.addActionListener(this);
mModify.addActionListener(this);
mBrowse.addActionListener(this);
mNumber.addActionListener(this);
mScore.addActionListener(this);
mAbout.addActionListener(this);
setContentPane(new MyPanel());
setVisible(true);
}
if (ae.getSource() == mExit)
else if (ae.getSource() == mAbout)
"学生管理系统 V1.0\n\n重庆邮电大学计算机学院\n\n2011年11月", "关于",
else if (ae.getSource() == mAdd)
new AddForm().setVisible(true);
else if (ae.getSource() == mDel)
new DeleteForm().setVisible(true);
else if (ae.getSource() == mModify)
new ModifyForm().setVisible(true);
else if (ae.getSource() == mBrowse)
new BrowseForm().setVisible(true);
else if (ae.getSource() == mNumber)
new NumberQueryForm().setVisible(true);
else if (ae.getSource() == mScore)
new ScoreQueryForm().setVisible(true);
}
public static void main
(String[] args
) {
new MainForm();
}
}