1.这是一个学生信息系统的入口框架类。 studentframe是顶层窗口框架。 通过七个按钮控件来分别可以进入到不同班级、不同系的学生信息系统中。
class studentmanageframe extends JPanel {
private static final long serialVersionUID = 1L;
static final int WIDTH = 400;
static final int HEIGHT = 200;
JFrame studentframe;
public studentmanageframe() {
studentframe = new JFrame();
studentframe.setBackground(Color.black);
studentframe.setTitle("学生信息管理系统");
studentframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
studentframe.setSize(WIDTH, HEIGHT);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
int x = (width - WIDTH) / 2;
int y = (height - HEIGHT) / 2;
studentframe.setLocation(x, y);
studentframe.setVisible(true);
studentframe.setResizable(false);
studentframe.add(this, BorderLayout.CENTER);
JButton computerone = new JButton("英语系一班学生信息系统");
JButton computertwo = new JButton("英语系二班学生信息系统");
JButton computerthree = new JButton("法律系一班学生信息系统");
JButton bioone = new JButton("法律系二班学生信息系统");
JButton mechone = new JButton("法律系三班学生信息系统");
JButton mechtwo = new JButton("数学系一班学生信息系统");
JButton mechthree = new JButton("数学系二班学生信息系统");
JLabel title = new JLabel("学生信息管理");
JLabel banket1 = new JLabel();
JLabel banket2 = new JLabel();
GridBagLayout lay = new GridBagLayout();
setLayout(lay);
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.EAST;
constraints.weightx = 2;
constraints.weighty = 5;
JPanel jp = new JPanel();
jp.setLayout(new GridLayout(1, 3));
jp.add(banket1);
jp.add(title);
jp.add(banket2);
studentframe.add(jp, BorderLayout.NORTH);
add(computerone, constraints, 0, 1, 1, 1); // 使用网格组布局添加控件
add(computertwo, constraints, 0, 2, 1, 1);
add(computerthree, constraints, 0, 3, 1, 1);
add(bioone, constraints, 0, 4, 1, 1);
add(mechone, constraints, 1, 1, 1, 1);
add(mechtwo, constraints, 1, 2, 1, 1);
add(mechthree, constraints, 1, 3, 1, 1);
// /单击这个按钮,进入到英语系一班学生信息系统
computerone.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String sql = "select * from studentinfo where class='一班'and major='英语系'";
Show_Student info = new Show_Student("英语系一班学生信息系统", sql);
}
});
// /单击这个按钮,进入到英语系二班学生信息系统
computertwo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String sql = "select * from studentinfo where class='二班'and major='英语系'";
Show_Student studentinformation = new Show_Student("英语系二班学生信息系统",
sql);
}
});
// /单击这个按钮,进入到法律系三班学生信息系统
computerthree.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String sql = "select * from studentinfo where class='一班'and major='法律系'";
Show_Student studentinformation = new Show_Student("法律系一班学生信息系统",
sql);
}
});
// /单击这个按钮,进入到法律系一班学生信息系统
bioone.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String sql = "select * from studentinfo where class='二班'and major='法律系'";
Show_Student studentinformation = new Show_Student("法律系二班学生信息系统",sql);
}
});
// /单击这个按钮,进入到机械机系一班学生信息系统
mechone.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String sql = "select * from studentinfo where class='三班'and major='法律系'";
Show_Student studentinformation = new Show_Student("法律系三班学生信息系统",
sql);
}
});
// /单击这个按钮,进入数学系一班学生信息系统
mechtwo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String sql = "select * from studentinfo where class='一班'and major='数学系'";
Show_Student studentinformation = new Show_Student("数学系一班学生信息系统",
sql);
}
});
// /单击这个按钮,数学系二班学生信息系统
mechthree.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String sql = "select * from studentinfo where class='二班'and major='数学系'";
Show_Student studentinformation = new Show_Student("数学系二班学生信息系统",
sql);
}
});
}
public void add(Component c, GridBagConstraints constraints, int x, int y,
int w, int h) {
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
add(c, constraints);
}
}
2.学生类
class studentBean {
private String name;
private String code;
private String sexy;
private String birthday;
private String address;
private String age;
private String grade;
private String major;
studentBean(String name, String code) {
this.name = name;
this.code = code;
}
3.把学生信息存入数据库
import java.util.Vector;
import java.sql.*;
class From_student {
public Vector getstudent(Connection con, String sql) {
Vector v = new Vector();
try {
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
String name = rs.getString(1);
String code = rs.getString(2);
String sexy = rs.getString(3);
String age = rs.getString(4);
String address = rs.getString(5);
String birthday = rs.getString(6);
String grade = rs.getString(7);
String major = rs.getString(8);
studentBean ss = new studentBean(name, code);
ss.setsexy(sexy);
ss.setmajor(major);
ss.setbirthday(birthday);
ss.setaddress(address);
ss.setage(age);
ss.setgrade(grade);
v.add(ss);
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
return v;
}
public studentBean getobject(Connection con, String stname) {
studentBean sst = null;
try {
Statement st = con.createStatement();
String sql = "select * from studentinfo where stname='" + stname
+ "'";
ResultSet rs = st.executeQuery(sql);
// /通过结果集中的getString方法从数据库中表中提取表字段的数据
// /再将提取出来的数据赋值给学生对象。
// /最后将学生对象存储到vector数据结构中
while (rs.next()) {
String code = rs.getString(2);
String sexy = rs.getString(3);
String age = rs.getString(4);
String address = rs.getString(5);
String birthday = rs.getString(6);
String grade = rs.getString(7);
String major = rs.getString(8);
sst = new studentBean(stname, code);
sst.setsexy(sexy);
sst.setmajor(major);
sst.setbirthday(birthday);
sst.setaddress(address);
sst.setage(age);
sst.setgrade(grade);
}
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
return sst;
}
// /通过设置数据库的URL,密码,用户名来建立与数据库的连接
public Connection getConnection() {
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 加载odbc数据驱动
con = DriverManager.getConnection("jdbc:odbc:myodbc", "", "");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
return con;
}
}
4.这个是学生信息系统添加信息框架类 通过九个文本域将不同信息的领导分别输出在其中。 通过一个添加按钮,将数据添加到数据库中。
/**主运行类
* main指主框架
* setDefaultCloseOperation指让框架右上角的按钮都有效
* show让框架能显示出来
* */
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.Vector;
import javax.swing.*;
/**
* 这个是学生信息系统添加信息框架类 通过九个文本域将不同信息的领导分别输出在其中。 通过一个添加按钮,将数据添加到数据库中。
* 在这里的布局是通过网格组布局管理器来设定的 在回送到信息界面时将学生对象ss设定为静态。放置新建对象时,其值会改变。
*/
class Student_Frame extends JPanel {
String codetext;
String agetext;
String sexytext;
String birthdaytext;
String addresstext;
String gradetext;
String majortext;
public final JTextField nameinput = new JTextField(10);
private static final long serialVersionUID = 1L;
static final int WIDTH = 700;
static final int HEIGHT = 400;
static studentBean ss;
JFrame studentBeanaddframe;
public void add(Component c, GridBagConstraints constraints, int x, int y,
int w, int h) {
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
add(c, constraints);
}
public Student_Frame() {
studentBeanaddframe = new JFrame();
studentBeanaddframe.setTitle("学生添加系统");
studentBeanaddframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
studentBeanaddframe.setSize(WIDTH, HEIGHT);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
int x = (width - WIDTH) / 2;
int y = (height - HEIGHT) / 2;
studentBeanaddframe.setLocation(x, y);
studentBeanaddframe.setVisible(true);
studentBeanaddframe.setResizable(false);
studentBeanaddframe.add(this, BorderLayout.CENTER);
GridBagLayout lay = new GridBagLayout();
setLayout(lay);
JLabel name = new JLabel(new ImageIcon("D://abc//11.jpg"));
JLabel code = new JLabel(new ImageIcon("D://abc//13.jpg"));
JLabel sexy = new JLabel(new ImageIcon("D://abc//12.jpg"));
JLabel age = new JLabel(new ImageIcon("D://abc//14.jpg"));
JLabel birthday = new JLabel(new ImageIcon("D://abc//15.jpg"));
JLabel address = new JLabel(new ImageIcon("D://abc//16.jpg"));
JLabel grade = new JLabel(new ImageIcon("D://abc//17.jpg"));
JLabel major = new JLabel(new ImageIcon("D://abc//18.jpg"));
final JTextField codeinput = new JTextField(10);
final JTextField sexyinput = new JTextField(10);
final JTextField ageinput = new JTextField(10);
final JTextField birthdayinput = new JTextField(10);
final JTextField addressinput = new JTextField(10);
final JTextField gradeinput = new JTextField(10);
final JTextField majorinput = new JTextField(10);
JLabel title = new JLabel("学生被添加的基本信息");
JButton additionbutton = new JButton("添加");
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.NONE;
constraints.weightx = 4;
constraints.weighty = 6;
add(title, constraints, 0, 0, 4, 1); // 使用网格组布局添加控件
add(name, constraints, 0, 1, 1, 1);
add(code, constraints, 0, 2, 1, 1);
add(sexy, constraints, 0, 3, 1, 1);
add(age, constraints, 0, 4, 1, 1);
add(nameinput, constraints, 1, 1, 1, 1);
add(codeinput, constraints, 1, 2, 1, 1);
add(sexyinput, constraints, 1, 3, 1, 1);
add(ageinput, constraints, 1, 4, 1, 1);
add(birthday, constraints, 2, 1, 1, 1);
add(address, constraints, 2, 2, 1, 1);
add(grade, constraints, 2, 3, 1, 1);
add(major, constraints, 2, 4, 1, 1);
add(birthdayinput, constraints, 3, 1, 1, 1);
add(addressinput, constraints, 3, 2, 1, 1);
add(gradeinput, constraints, 3, 3, 1, 1);
add(majorinput, constraints, 3, 4, 1, 1);
add(additionbutton, constraints, 0, 5, 4, 1);
// /将每个文本域中的信息赋值给变量,再将变量以值的形式存储到数据库的表中
// /最后,再将这些值存储到学生对象中,并且这个学生对象是一个静态的对象
additionbutton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
try {
String nametext = nameinput.getText();
codetext = codeinput.getText();
agetext = ageinput.getText();
sexytext = sexyinput.getText();
birthdaytext = birthdayinput.getText();
addresstext = addressinput.getText();
gradetext = gradeinput.getText();
majortext = majorinput.getText();
From_student store = new From_student();
Connection con = store.getConnection();
Statement st = con.createStatement();
String sql = "insert into studentinfo values('" + nametext
+ "','" + codetext + "','" + sexytext + "','"
+ agetext + "','" + addresstext + "','"
+ birthdaytext + "','" + gradetext + "','"
+ majortext + "')";
st.executeUpdate(sql);
ss = new studentBean(nametext, codetext);
ss.setage(agetext);
ss.setsexy(sexytext);
ss.setaddress(addresstext);
ss.setbirthday(birthdaytext);
ss.setgrade(gradetext);
ss.setmajor(majortext);
Vector vec = new Vector();
vec.add(ss);
} catch (Exception e) {
}
studentBeanaddframe.dispose();
}
});
}
}
5.*这是学生类信息系统的框架类
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import java.sql.*;
/**这是学生类信息系统的框架类
* studentinfoframe是顶层窗口框架。
* 通过八个文本域控件来分别可以显示不同班级、不同系的学生信息。
* 三个按钮控件分别产生三个不同的动作事件简史事件,分别是添加,删除和更新。Addition是添加。Delete是删除,update是更新
* 在布局方面有两个布局管理器,一个是lay即网格组布局。一个是jp是GridLayout布局。
* 通过不同的SQL语句进入不同的班级和系的管理系统。
* 使用将数据库中的数据先导入到vec中。然后在将vec中的数据导入学生类中。最后再将数据输出
* */
class Show_Student extends JPanel {
private static final long serialVersionUID = 1L;
static final int WIDTH = 700;
static final int HEIGHT = 400;
final JComboBox nameinput;
final JTextField codeinput;
final JTextField sexyinput;
final JTextField birthdayinput;
final JTextField ageinput;
final JTextField addressinput;
final JTextField gradeinput;
final JTextField majorinput;
JFrame studentinfoframe;
From_student store = new From_student();
Connection con = store.getConnection();
Student_Frame af = new Student_Frame();
public void add(Component c, GridBagConstraints constraints, int x, int y,
int w, int h) {
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
add(c, constraints);
}
public Show_Student(String str, String sql) {
studentinfoframe = new JFrame();
studentinfoframe.setTitle(str);
studentinfoframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
studentinfoframe.setSize(WIDTH, HEIGHT);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
int x = (width - WIDTH) / 2;
int y = (height - HEIGHT) / 2;
studentinfoframe.setLocation(x, y);
studentinfoframe.setVisible(true);
// studentinfoframe.setResizable(false);
studentinfoframe.add(this, BorderLayout.CENTER);
GridBagLayout lay = new GridBagLayout();
setLayout(lay);
JLabel name = new JLabel(new ImageIcon("D://abc//11.jpg"));
JLabel code = new JLabel(new ImageIcon("D://abc//13.jpg"));
JLabel sexy = new JLabel(new ImageIcon("D://abc//12.jpg"));
JLabel age = new JLabel(new ImageIcon("D://abc//14.jpg"));
JLabel birthday = new JLabel(new ImageIcon("D://abc//15.jpg"));
JLabel address = new JLabel(new ImageIcon("D://abc//16.jpg"));
JLabel grade = new JLabel(new ImageIcon("D://abc//17.jpg"));
JLabel major = new JLabel(new ImageIcon("D://abc//18.jpg"));
JLabel title = new JLabel(str);
nameinput = new JComboBox();
codeinput = new JTextField(10);
sexyinput = new JTextField(10);
ageinput = new JTextField(10);
birthdayinput = new JTextField(10);
addressinput = new JTextField(10);
gradeinput = new JTextField(10);
majorinput = new JTextField(10);
// /将存储在Vector中的数据提取出来重新赋值给学生对象。再利用学生对象中
// getname方法来提取出学生姓名来,最后使用组合列表框的添加功能将这些名字添加到列表中去。
Vector vec = store.getstudent(con, sql);
for (int i = 0; i < vec.size(); i++) {
studentBean one = (studentBean) vec.get(i);
String nameselect = one.getname();
nameinput.addItem(nameselect);
}
String namestring = (String) nameinput.getSelectedItem();
studentBean p = store.getobject(con, namestring);
String inputcode = p.getcode();
String inputsexy = p.getsexy();
String inputage = p.getage();
String inputbirthday = p.getbirthday();
String inputaddress = p.getaddress();
String inputgrade = p.getgrade();
String inputmajor = p.getmajor();
codeinput.setText(inputcode);
sexyinput.setText(inputsexy);
ageinput.setText(inputage);
birthdayinput.setText(inputbirthday);
addressinput.setText(inputaddress);
gradeinput.setText(inputgrade);
majorinput.setText(inputmajor);
JButton addition = new JButton("添加");
JButton delete = new JButton("删除");
JButton update = new JButton("更新");
JButton bereturn = new JButton("返回");
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.NONE;
constraints.weightx = 4;
constraints.weighty = 6;
add(title, constraints, 0, 0, 4, 1); // 使用网格组布局添加控件
add(name, constraints, 0, 1, 1, 1);
add(code, constraints, 0, 2, 1, 1);
add(sexy, constraints, 0, 3, 1, 1);
add(age, constraints, 0, 4, 1, 1);
add(nameinput, constraints, 1, 1, 1, 1);
add(codeinput, constraints, 1, 2, 1, 1);
add(sexyinput, constraints, 1, 3, 1, 1);
add(ageinput, constraints, 1, 4, 1, 1);
add(birthday, constraints, 2, 1, 1, 1);
add(address, constraints, 2, 2, 1, 1);
add(grade, constraints, 2, 3, 1, 1);
add(major, constraints, 2, 4, 1, 1);
add(birthdayinput, constraints, 3, 1, 1, 1);
add(addressinput, constraints, 3, 2, 1, 1);
add(gradeinput, constraints, 3, 3, 1, 1);
add(majorinput, constraints, 3, 4, 1, 1);
add(addition, constraints, 0, 5, 1, 1);
add(delete, constraints, 1, 5, 1, 1);
add(update, constraints, 2, 5, 1, 1);
add(bereturn, constraints, 3, 5, 1, 1);
// /通过点击每一个列表框中的名字,会相应地显示出此名字的所有信息
nameinput.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
String namestring = (String) nameinput.getSelectedItem();
studentBean p = store.getobject(con, namestring);
String inputcode = p.getcode();
String inputsexy = p.getsexy();
String inputage = p.getage();
String inputbirthday = p.getbirthday();
String inputaddress = p.getaddress();
String inputgrade = p.getgrade();
String inputmajor = p.getmajor();
codeinput.setText(inputcode);
sexyinput.setText(inputsexy);
ageinput.setText(inputage);
birthdayinput.setText(inputbirthday);
addressinput.setText(inputaddress);
gradeinput.setText(inputgrade);
majorinput.setText(inputmajor);
}
});
// /返回主菜单
bereturn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
studentmanageframe manageframe = new studentmanageframe();
manageframe.setVisible(true);
studentinfoframe.dispose();
}
});
// /进入添加主界面
addition.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
Student_Frame addfr = new Student_Frame();
addfr.setVisible(true);
}
});
// /更新按钮,使得从数据库表中,将数据提取显示到界面中
update.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String name1 = af.ss.getname();
String code1 = af.ss.getcode();
String age1 = af.ss.getage();
String sexy1 = af.ss.getsexy();
String birthday1 = af.ss.getbirthday();
String address1 = af.ss.getaddress();
String grade1 = af.ss.getgrade();
String major1 = af.ss.getmajor();
nameinput.addItem(name1);
nameinput.setSelectedItem(name1);
codeinput.setText(code1);
ageinput.setText(age1);
sexyinput.setText(sexy1);
addressinput.setText(address1);
birthdayinput.setText(birthday1);
gradeinput.setText(grade1);
majorinput.setText(major1);
}
});
// /删除数据,且更新到数据库中
delete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent Event) {
String namestring = (String) nameinput.getSelectedItem();
From_student store = new From_student();
try {
Connection con = store.getConnection();
Statement st = con.createStatement();
String sql = "delete * from studentinfo where='"
+ namestring + "'";
st.executeUpdate(sql);
} catch (Exception e) {
}
nameinput.removeItem(namestring);
}
});
}
}