package student;
import javax.swing.*;
import java.util.Vector;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;
@SuppressWarnings("serial")
// 定义外来码时用到
// 记录下一个空ID
static int stuID;
static int majorID;
// 学生操作对应的面板
// 专业操作对应的面板
// 学生信息登记面板组件
// JTextField SR_Major;
JComboBox<Vector> SR_Major;
// 学生信息查询面板的组件
// 学生信息更新面板的组件
// 学生信息删除面板的组件
// 专业信息登记面板的组件
// 专业信息查询面板的组件
// 专业信息更新面板的组件
// 专业信息删除面板的组件
// 菜单项
public MainFrame() {
majorID = 1;
stuID = 1;
font
= new Font("myFont",
Font.
PLAIN,
15);
// 当Major的ID的删除完时,显示
MID.add("");
// 菜单条
Main_Menu();
setTitle("学生管理");
setSize(400, 377);
setLocation(530, 200);
Main_Pane(this.getContentPane());
setDefaultCloseOperation
(JFrame.
EXIT_ON_CLOSE);
}
pane.setLayout(cards);
pane.add(SR, "0");
pane.add(SQ, "1");
pane.add(SU, "2");
pane.add(SD, "3");
pane.add(MR, "4");
pane.add(MQ, "5");
pane.add(MU, "6");
pane.add(MD, "7");
}
public void Main_Menu() {
stu.add(stuR);
stu.add(stuQ);
stu.add(stuU);
stu.add(stuD);
major.add(majorR);
major.add(majorQ);
major.add(majorU);
major.add(majorD);
menuBar.add(stu);
menuBar.add(major);
this.setJMenuBar(menuBar);
// 增加监听器
stuR.addActionListener(this);
stuQ.addActionListener(this);
stuD.addActionListener(this);
stuU.addActionListener(this);
majorR.addActionListener(this);
majorQ.addActionListener(this);
majorD.addActionListener(this);
majorU.addActionListener(this);
}
@Override
public void run() {
SR_Pane();
SQ_Pane();
SD_Pane();
SU_Pane();
MR_Pane();
MQ_Pane();
MU_Pane();
MD_Pane();
}
// 学生登记和查询面板
public void SR_Pane() {
labelID.setFont(font);
labelName.setFont(font);
labelSex.setFont(font);
labelClass.setFont(font);
labelMajor.setFont(font);
SR_ID.
setText(String.
valueOf(stuID
));
SR_Major = new JComboBox<Vector>(MID);
SR_Yes.addActionListener(this);
SR_No.addActionListener(this);
SR.add(labelID);
SR.add(SR_ID);
SR.add(labelName);
SR.add(SR_Name);
SR.add(labelSex);
SR.add(SR_Sex);
SR.add(labelClass);
SR.add(SR_Class);
SR.add(labelMajor);
SR.add(SR_Major);
SR.add(SR_Yes);
SR.add(SR_No);
}
public void SQ_Pane() {
labelID.setFont(font);
labelName.setFont(font);
labelSex.setFont(font);
labelClass.setFont(font);
labelMajor.setFont(font);
SD_Tip.setFont(font);
SQ_Yes.addActionListener(this);
SQ.add(labelID);
SQ.add(SQ_ID);
SQ.add(labelName);
SQ.add(SQ_Name);
SQ.add(labelSex);
SQ.add(SQ_Sex);
SQ.add(labelClass);
SQ.add(SQ_Class);
SQ.add(labelMajor);
SQ.add(SQ_Major);
SQ.add(SD_Tip);
SQ.add(SQ_Yes);
}
public void SD_Pane() {
c.gridwidth = 1;
c.
insets = new Insets(10,
10,
10,
10);
SD.add(label, c);
c.gridx = 1;
c.gridwidth = 3;
c.ipadx = 120;
SD.add(SD_Field, c);
c.gridwidth = 1;
c.gridx = 3;
c.ipadx = 0;
SD.add(delete, c);
@Override
sql = "Delete from student where ID=";
sql += SD_Field.getText();
sql += ";";
try {
int i
= Integer.
valueOf(SD_Field.
getText());
if (isStuExist(i)) {
state.execute(sql);
} else {
}
}
}
});
}
public void SU_Pane() {
labelID.setFont(font);
labelName.setFont(font);
labelSex.setFont(font);
labelClass.setFont(font);
labelMajor.setFont(font);
SU_Update.addActionListener(this);
SU_Show.addActionListener(this);
SU.add(labelID);
SU.add(SU_ID);
SU.add(labelName);
SU.add(SU_Name);
SU.add(labelSex);
SU.add(SU_Sex);
SU.add(labelClass);
SU.add(SU_Class);
SU.add(labelMajor);
SU.add(SU_Major);
SU.add(SU_Show);
SU.add(SU_Update);
}
public void MR_Pane() {
labelID.setFont(font);
labelName.setFont(font);
MR_ID.
setText(String.
valueOf(majorID
));
MR_Yes.addActionListener(this);
MR_No.addActionListener(this);
MR.add(labelID);
MR.add(MR_ID);
MR.add(labelName);
MR.add(MR_Name);
MR.add(MR_Yes);
MR.add(MR_No);
}
public void MQ_Pane() {
labelID.setFont(font);
labelName.setFont(font);
MQ_Yes.addActionListener(this);
MQ.add(labelID);
MQ.add(MQ_ID);
MQ.add(labelName);
MQ.add(MQ_Name);
MQ.add(MQ_Yes);
}
public void MU_Pane() {
labelID.setFont(font);
labelName.setFont(font);
MU_Update.addActionListener(this);
MU.add(labelID);
MU.add(MU_ID);
MU.add(labelName);
MU.add(MU_Name);
MU.add(MU_Update);
}
public void MD_Pane() {
labelID.setFont(font);
MD_Delete.addActionListener(this);
MD.add(labelID);
MD.add(MD_Field);
MD.add(MD_Tip);
MD.add(MD_Delete);
}
@Override
Object source
= e.
getSource();
try {
if (source == SR_Yes) {
String Sex
= SR_Sex.
getText();
String Class = SR_Class.
getText();
if (ID.
length() > 0 && Name.
length() > 0 && Sex.
length() > 0
&& Class.length() > 0 && Major.length() > 0) {
sql
= "Insert into student values(" + ID
+ ", '" + Name
+ "' , '" + Sex + "' ," + Class + "," + Major
+ ");";
state.execute(sql);
stuID++;
SR_ID.
setText(String.
valueOf(stuID
));
SR_Name.setText("");
SR_Sex.setText("");
SR_Class.setText("");
}
}
if (source == SR_No) {
SR_Name.setText("");
SR_Sex.setText("");
SR_Class.setText("");
}
if (source == SQ_Yes) {
if (ID.length() > 0) {
if (isStuExist
(Integer.
valueOf(ID
))) {
sql = "Select * from student where ID="+ID+";";
while (rs.next()) {
SQ_Name.setText(rs.getString(2));
SQ_Sex.setText(rs.getString(3));
SQ_Class.
setText(String.
valueOf(rs.
getInt(4)));
SQ_Major.
setText(String.
valueOf(rs.
getInt(5)));
}
} else
}
}
if (source == SU_Show) {
showInformation_SU_Pane();
}
if (source == SU_Update) {
String SUID
= SU_ID.
getText();
if (SUID.length() > 0) {
String Sex
= SU_Sex.
getText();
String Class = SU_Class.
getText();
String Major
= SU_Major.
getText();
sql
= "Update student Set Name = '" + Name + "', Sex= ' "
+ Sex + "', Class= " + Class + ", Major = " + Major
+ " Where ID =" + SUID;
state.executeUpdate(sql);
}
}
if (source == MR_Yes) {
String MName
= MR_Name.
getText();
if (ID.length() > 0 && MName.length() > 0) {
sql = "Insert into major values( " + ID + ",'" + MName
+ "');";
state.execute(sql);
majorID++;
MR_ID.
setText(String.
valueOf(majorID
));
MR_Name.setText("");
}
}
if (source == MR_No) {
MR_Name.setText("");
}
if (source == MQ_Yes) {
if (ID.length() > 0) {
if (isMajorExist
(Integer.
valueOf(ID
))) {
sql = "Select * from major where ID=" + ID + ";";
while (rs.next())
MQ_Name.setText(rs.getString(2));
} else
}
}
if (source == MU_Update) {
if (ID.
length() > 0 && Name.
length() > 0) {
sql
= "Update major set Name = '" + Name + "' where ID ="
+ ID;
state.executeUpdate(sql);
}
}
if (source == MD_Delete) {
String ID
= MD_Field.
getText();
if (ID.length() > 0) {
if (isMajorExist(i)) {
try {
sql = "Delete from major where ID = " + ID;
state.execute(sql);
SR_Major.setSelectedItem("");
"删除失败 ,学生中包含相关专业");
}
} else
}
}
e1.printStackTrace();
}
if (source == stuR) {
cards.show(pane, "0");
Reset_S_Pane();
Reset_M_Pane();
setSize(400, 377);
}
if (source == stuQ) {
cards.show(pane, "1");
Reset_S_Pane();
Reset_M_Pane();
setSize(400, 377);
}
if (source == stuU) {
cards.show(pane, "2");
Reset_S_Pane();
Reset_M_Pane();
setSize(400, 377);
}
if (source == stuD) {
cards.show(pane, "3");
Reset_S_Pane();
Reset_M_Pane();
setSize(400, 377);
}
if (source == majorR) {
cards.show(pane, "4");
Reset_S_Pane();
Reset_M_Pane();
setSize(400, 250);
}
if (source == majorQ) {
cards.show(pane, "5");
Reset_S_Pane();
Reset_M_Pane();
setSize(400, 250);
}
if (source == majorU) {
cards.show(pane, "6");
Reset_S_Pane();
Reset_M_Pane();
setSize(400, 250);
}
if (source == majorD) {
cards.show(pane, "7");
Reset_S_Pane();
Reset_M_Pane();
setSize(400, 250);
}
}
public void Reset_S_Pane() {
SR_Name.setText("");
SR_Sex.setText("");
SR_Class.setText("");
SR_Major.setSelectedItem("");
SQ_ID.setText("");
SQ_Name.setText("");
SQ_Sex.setText("");
SQ_Class.setText("");
SQ_Major.setText("");
SU_ID.setText("");
SU_Name.setText("");
SU_Sex.setText("");
SU_Class.setText("");
SU_Major.setText("");
SD_Field.setText("");
}
public void Reset_M_Pane() {
MR_Name.setText("");
MQ_ID.setText("");
MQ_Name.setText("");
MU_ID.setText("");
MU_Name.setText("");
MD_Field.setText("");
}
public boolean isStuExist(int ID) {
try {
ResultSet rs
= state.
executeQuery("Select * from student");
while (rs.next()) {
int rsID = rs.getInt("ID");
stuID = rsID;
SR_ID.
setText(String.
valueOf(++stuID
));
if (ID == rsID)
return true;
}
e.printStackTrace();
}
return false;
}
public boolean isMajorExist(int ID) {
try {
ResultSet rs
= state.
executeQuery("Select *from major");
while (rs.next()) {
int rsID = rs.getInt("ID");
if (!MID.contains(rsID))
MID.add(rsID);
majorID = rsID;
MR_ID.
setText(String.
valueOf(++majorID
));
if (ID == rsID)
return true;
}
e.printStackTrace();
}
return false;
}
public void showInformation_SU_Pane() {
String SuID
= SU_ID.
getText();
if (SuID.length() > 0) {
sql = "Select * from student where ID="+SuID+";";
try {
while (rs.next()) {
SU_Name.setText(rs.getString(2));
SU_Sex.setText(rs.getString(3));
SU_Class.
setText(String.
valueOf(rs.
getInt(4)));
SU_Major.
setText(String.
valueOf(rs.
getInt(5)));
}
e1.printStackTrace();
}
}
}
public static void main
(String args
[]) {
try {
.setLookAndFeel("org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");
e.printStackTrace();
}
JFrame.
setDefaultLookAndFeelDecorated(true);
JDialog.
setDefaultLookAndFeelDecorated(true);
MainFrame MF = new MainFrame();
new StuDataBase(MF);
}
}
//源代码片段来自云代码http://yuncode.net