📄 studentinfo.java
字号:
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 studentinfo 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;
storesystem store=new storesystem();
Connection con=store.getConnection();
addframe af=new addframe();
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 studentinfo(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("姓名");
JLabel code=new JLabel("学号");
JLabel sexy=new JLabel("性别");
JLabel age=new JLabel("年龄");
JLabel birthday=new JLabel("出生年月");
JLabel address=new JLabel("家庭地址");
JLabel grade=new JLabel("班级");
JLabel major=new JLabel("专业");
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++)
{
student one =(student)vec.get(i);
String nameselect=one.getname();
nameinput.addItem(nameselect);
}
String namestring=(String)nameinput.getSelectedItem();
student 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();
student 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)
{
addframe addfr=new addframe();
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();
storesystem store=new storesystem();
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);
}
});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -