📄 informationinquiry.java
字号:
//作者:沈阳
//时间:2008年11月8日
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
import javax.swing.table.*;
/*-------------------------------InformationInquiry-----------------------------------------*/
class InformationInquiry extends JFrame implements ActionListener{
JButton jbExacQuery = new JButton("精 确 查 询");
JButton jbBlurQuery = new JButton("分 类 查 询");
JButton jbReturn = new JButton("返 回 上 级");
int userPriority;
InformationInquiry(int priority){
userPriority = priority;
Container container = this.getContentPane();
container.setLayout(new BorderLayout());
jbExacQuery.setPreferredSize(new Dimension(215,50));
jbBlurQuery.setPreferredSize(new Dimension(215,50));
jbReturn.setPreferredSize(new Dimension(215,50));
jbExacQuery.setFont(new java.awt.Font("Dialog",1,20));
jbBlurQuery.setFont(new java.awt.Font("Dialog",1,20));
jbReturn.setFont(new java.awt.Font("Dialog",1,20));
JPanel jpTop = new JPanel();
JPanel jpTop1 = new JPanel();
JPanel jpCenter = new JPanel();
JPanel jpCenter1 = new JPanel();
JPanel jpCenter2 = new JPanel();
JPanel jpCenter3 = new JPanel();
JPanel jpBottom = new JPanel();
JPanel jpBottom1 = new JPanel();
JPanel jpBottom2 = new JPanel();
jpBottom.setLayout(new GridLayout(2,1));
jpBottom.add(jpBottom1);
jpBottom.add(jpBottom2);
jpCenter.setLayout(new GridLayout(3,1));
jpTop.add(jpTop1);
jpCenter1.add(jbExacQuery);
jpCenter2.add(jbBlurQuery);
jpCenter3.add(jbReturn);
jpCenter.add(jpCenter1);
jpCenter.add(jpCenter2);
jpCenter.add(jpCenter3);
jbExacQuery.addActionListener(this);
jbBlurQuery.addActionListener(this);
jbReturn.addActionListener(this);
container.add("North",jpTop);
container.add("Center",jpCenter);
container.add("South",jpBottom);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - 380) / 2,(screen.height - 500) / 2);
setTitle("学生信息查询");
setResizable(false);
setSize(410,340);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == jbExacQuery){
dispose();
new ExactQuery();
}
else if(e.getSource() == jbBlurQuery){
dispose();
new BlurQuery();
}
else if(e.getSource() == jbReturn){
dispose();
new MainWindow(userPriority);
}
}//actionPerformed
//------------------------------------------ExactQuery-----------------------------------------------
class ExactQuery extends JFrame implements ActionListener{
JButton ascertain = new JButton("确定");
JButton exit = new JButton("退出");
JButton jbContinue = new JButton("继 续");
JButton exitPane = new JButton("退 出");
JTextField txtInputNumber = new JTextField(15); //for query
JTextField txtStudentName = new JTextField(15);
JTextField txtSpeciality = new JTextField(15);
JTextField txtAcademy = new JTextField(15);
JTextField txtDormName = new JTextField(15);
JTextField txtBedchamberNumber = new JTextField(15);
JTextField txtTouchPhone = new JTextField(15);
JTextField txtTeacherName = new JTextField(15);
JTextField txtTeacherPhone = new JTextField(15);
String inputNumber;
ExactQuery(){
Container container = this.getContentPane();
container.setLayout(new BorderLayout());
JPanel jpInputNumber = new JPanel();
jpInputNumber = new JPanel(new FlowLayout(FlowLayout.LEFT));
jpInputNumber.add(new JLabel("输入学号"));
jpInputNumber.add(txtInputNumber);
ascertain.setPreferredSize(new Dimension(60,22));
exit.setPreferredSize(new Dimension(60,22));
jpInputNumber.add(ascertain);
jpInputNumber.add(exit);
JPanel jpTop1 = new JPanel();
JPanel jpTop = new JPanel();
jpTop.setLayout(new GridLayout(3,1));
jpTop.add(jpTop1);
jpTop.add(jpInputNumber);
txtInputNumber.addActionListener(this);
ascertain.addActionListener(this);
exit.addActionListener(this);
container.add("North",jpTop);
setSize(380,460);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - 370) / 2,(screen.height - 480) / 2);
setTitle("学生信息精确查询");
setResizable(false);
setVisible(true);
}//ModifyStudent
//--------------------------------actionPerformed-------------------------------------
public void actionPerformed(ActionEvent e){
if(e.getSource() == ascertain || e.getSource() == txtInputNumber){
if(txtInputNumber.getText().equals("")){
JOptionPane.showMessageDialog(null,"请输入学生学号!");
txtInputNumber.requestFocus();
}
else{
Statement stm = null;
ResultSet rs = null;
String studentName;
String speciality;
String academy;
String dormName;
String bedchamberNumber;
String touchPhone;
String teacherName;
String teacherPhone;
String sql;
boolean flag = false;
inputNumber = txtInputNumber.getText();
ConnectServer.mainLink(); //建立和数据库的连接。
try{
stm = ConnectServer.con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
/* sql = "SELECT * FROM student,master,address WHERE student.stu_number = address.stu_number";
sql = sql+" AND address.master_number = master.master_number AND";
sql = sql+" student.stu_number = '"+inputNumber+"'";*/
sql = "SELECT * FROM student WHERE stu_number = '"+inputNumber+"'";
System.out.println(sql);/////////////////////////////////////////////////
rs = stm.executeQuery(sql);
while(rs.next()){ //****************only for test*****************
if( txtInputNumber.getText().trim().equals(rs.getString("stu_number"))){
flag = true;
studentName = rs.getString("stu_name");
speciality = rs.getString("speciality");
academy = rs.getString("academy");
System.out.println(""+studentName+" "+speciality+" "+academy);
txtStudentName.setText(studentName);
txtSpeciality.setText(speciality);
txtAcademy.setText(academy);
}
}
sql = "SELECT * FROM address WHERE stu_number= '"+inputNumber+"'";
System.out.println(sql);
rs = stm.executeQuery(sql);
while(rs.next()){
if( txtInputNumber.getText().trim().equals(rs.getString("stu_number"))){
dormName = rs.getString("dorm_name");
bedchamberNumber = rs.getString("bedchamber_number");
touchPhone = rs.getString("touch_phone");
System.out.println(""+dormName+" "+bedchamberNumber+" "+touchPhone);
txtDormName.setText(dormName);
txtBedchamberNumber.setText(bedchamberNumber);
txtTouchPhone.setText(touchPhone);
}
}
sql = "SELECT * FROM master,address WHERE address.master_number";
sql = sql+" = master.master_number AND stu_number = '"+inputNumber+"'";
System.out.println(sql);
rs = stm.executeQuery(sql);
while(rs.next()){
teacherName = rs.getString("master_name");
teacherPhone = rs.getString("master_phone");//////
System.out.println(""+teacherName+" "+teacherPhone);
txtTeacherName.setText(teacherName);
txtTeacherPhone.setText(teacherPhone);//////////
}
stm.close(); //关闭数据库连接
ConnectServer.con.close();
inputNumber = txtInputNumber.getText();
}
catch(Exception ee){
JOptionPane.showMessageDialog(null,"数据库操作失败!");
System.exit(0);
}
txtInputNumber.setEditable(false);
ascertain.setEnabled(false);
exit.setEnabled(false); //11.9--------------------------------------------
dispose();
ModifyPane();
}//else
}
else if(e.getSource() == jbContinue){
dispose();
new ExactQuery();
}
else if(e.getSource() == exit || e.getSource() == exitPane){
dispose();
new InformationInquiry(userPriority);
}
}//actionPerformed
//--------------------------------------ModifyPane-----------------------------------------
public void ModifyPane() {
System.out.println("-----------------------------------------ModifyStudent()-InformationPane()");
String title[] = {"姓 名","专 业","学院名称","寝室名称",
"寝室号码","联系电话","教师姓名","教师电话"};
Container container = this.getContentPane();
container.setLayout(new BorderLayout());
JPanel p[] = new JPanel[9];
for(int i = 1;i < 9;i++){
p[i] = new JPanel(new FlowLayout(FlowLayout.LEFT));
}
for(int i = 1;i < 9;i++){
p[i].add(new JLabel(title[i - 1]));
}
p[1].add(txtStudentName);
p[2].add(txtSpeciality);
p[3].add(txtAcademy);
p[4].add(txtDormName);
p[5].add(txtBedchamberNumber);
p[6].add(txtTouchPhone);
p[7].add(txtTeacherName);
p[8].add(txtTeacherPhone);
JPanel jpCenterPane = new JPanel();
jpCenterPane.setLayout(new GridLayout(9,1));
for(int i = 1;i < 9;i++){
jpCenterPane.add(p[i]);
}
JPanel jpTopPane = new JPanel();
JPanel jpTopPane1 = new JPanel();
JPanel jpTopPane2 = new JPanel();
JPanel jpTopPane3 = new JPanel();
JPanel jpTopPane4 = new JPanel();
JPanel jpTopPane5 = new JPanel();
JPanel jpTopPane6 = new JPanel();
JPanel jpTopPane7 = new JPanel();
JPanel jpTopPane8 = new JPanel();
JPanel jpTopPane9 = new JPanel();
jpTopPane.setLayout(new GridLayout(9,1));
jpTopPane.add(jpTopPane1);
jpTopPane.add(jpTopPane2);
jpTopPane.add(jpTopPane3);
jpTopPane.add(jpTopPane4);
jpTopPane.add(jpTopPane5);
jpTopPane.add(jpTopPane6);
jpTopPane.add(jpTopPane7);
jpTopPane.add(jpTopPane8);
jpTopPane.add(jpTopPane9);
JPanel jpBottomPane1 = new JPanel();
JPanel jpBottomPane2 = new JPanel();
JPanel jpBottomPane = new JPanel();
jpBottomPane1 = new JPanel(new FlowLayout(FlowLayout.CENTER,40,10));
jpBottomPane1.add(jbContinue);
jpBottomPane1.add(exitPane);
jpBottomPane.setLayout(new GridLayout(2,1));
jpBottomPane.add(jpBottomPane1);
jpBottomPane.add(jpBottomPane2);
txtAcademy.addActionListener(this);
jbContinue.addActionListener(this);
exitPane.addActionListener(this);
container.add("North",jpTopPane);
container.add("Center",jpCenterPane);
container.add("South",jpBottomPane);
txtStudentName.setEditable(false);
txtSpeciality.setEditable(false);
txtAcademy.setEditable(false);
txtDormName.setEditable(false);
txtBedchamberNumber.setEditable(false);
txtTouchPhone.setEditable(false);
txtTeacherName.setEditable(false);
txtTeacherPhone.setEditable(false);
setSize(380,460);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - 370) / 2,(screen.height - 480) / 2);
setTitle("学生信息精确查询");
setResizable(false);
setVisible(true);
}
}//end of class ExactQuery*/
/*------------------------------------BlurQuery-----------------------------------------*/
class BlurQuery extends JFrame implements ActionListener{
JLabel jlabel1 = new JLabel("请选择查询类型");
JLabel jlabel2 = new JLabel("请选择系名");
JLabel jlabel3 = new JLabel("请选择寝室编号");
JLabel jlabel4 = new JLabel("请选择班主任");
JComboBox jcbQueryType = new JComboBox();
JComboBox jcbName1 = new JComboBox();
JComboBox jcbName2 = new JComboBox();
JComboBox jcbName3 = new JComboBox();
String[] header = {"学号","姓名","年龄","专业","系名","学院"};
Object[][] data={{"","","","","",""}};
JTable jtable = new JTable(data,header);
JScrollPane jsp = new JScrollPane(jtable);
JButton jbQuery = new JButton("查 询");
JButton jbExit = new JButton("退 出");
String selectedItem1;
String selectedItem2;
String selectedItem3;
boolean flagName1 = false;
boolean flagName2 = false;
boolean flagName3 = false;
BlurQuery(){
Container container = this.getContentPane();
container.setLayout(new BorderLayout());
jtable.setColumnSelectionAllowed(true); //使选框成为一个单元格
jtable.setGridColor(Color.blue);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -