📄 datastatistical.java
字号:
//作者:沈阳
//时间:2008年11月11日
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.sql.*;
class DataStatistical extends JFrame implements ActionListener {
JComboBox jcbType = new JComboBox(); //统计类型组合框
JComboBox jcbSpeciality = new JComboBox(); //专业统计组合框
JComboBox jcbTeacherNumber = new JComboBox(); //教师编号统计组合框
JLabel jlabel1= new JLabel(" 选择统计类型");
JLabel jlabel2= new JLabel("选择统计专业");
JLabel jlabel3 = new JLabel("选择教师编号");
JButton jbAscertain = new JButton("统 计");
JButton jbExit = new JButton("退 出");
String selectedItem1;
String selectedItem2;
int userPriority;
boolean flagShow = true;
boolean flagSQL1 = true;
boolean flagSQL2 = true;
boolean choice = false;
DataStatistical(int priority){
userPriority = priority;
Container container = this.getContentPane();
container.setLayout(new BorderLayout());
JPanel jpTop = new JPanel();
jpTop.setLayout(new GridLayout(2,1));
JPanel jpTop1 = new JPanel();
JPanel jpTop2 = new JPanel();
jpTop2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
jpTop2.add(jlabel1);
jpTop2.add(jcbType);
jcbType.addItem("按相同专业统计");
jcbType.addItem("按教师编号统计");
jpTop.add(jpTop1);
jpTop.add(jpTop2);
JPanel jpBottom = new JPanel();
jpBottom.setLayout(new GridLayout(2,1));
JPanel jpBottom1 = new JPanel();
JPanel jpBottom2 = new JPanel();
jpBottom1 = new JPanel(new FlowLayout(FlowLayout.CENTER,40,10));
jpBottom1.add(jbAscertain);
jpBottom1.add(jbExit);
jpBottom.add(jpBottom1);
jpBottom.add(jpBottom2);
jcbSpeciality.addActionListener(this);
jcbTeacherNumber.addActionListener(this);
jcbType.addActionListener(this);
jbAscertain.addActionListener(this);
jbExit.addActionListener(this);
container.add("North",jpTop);
container.add("South",jpBottom);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - 360) / 2,(screen.height - 500) / 2);
setTitle("学生人数统计");
setResizable(false);
setSize(350,390);
setVisible(true);
}//DataStatistical
//--------------------------------actionPerformed-------------------------------------------
public void actionPerformed(ActionEvent e){
Statement stm = null;
ResultSet rs = null;
Container container = this.getContentPane();
JPanel jpCenter = new JPanel(); //中部容器
jpCenter.setLayout(new GridLayout(5,1)); //将中部容器分成两行一列
JPanel jpCenterTop = new JPanel(); //取得中部容器的上面一列
jpCenterTop = new JPanel(new FlowLayout(FlowLayout.LEFT));
JPanel jpCenterBottom = new JPanel();//取得中部容器的下面一列
jpCenterBottom = new JPanel(new FlowLayout(FlowLayout.LEFT));
JTextField txtStaticNumber = new JTextField(9);
txtStaticNumber.setEditable(false);
String [] speciality = new String[20];
String [] teacherNumber = new String[20];
String Temp;
int countSpeciality = 0;
int countTeacherNumber = 0;
if(e.getSource() == jcbType){
ConnectServer.mainLink(); //建立和数据库的连接。
System.out.println("---------------------------"+flagSQL1);
if(jcbType.getSelectedItem().equals("按相同专业统计")){
if(flagSQL1){
try{
stm = ConnectServer.con.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stm.executeQuery("SELECT distinct speciality FROM student");
while(rs.next()){
Temp = rs.getString("speciality");
speciality[countSpeciality] = Temp;
countSpeciality++;
}
stm.close(); //关闭数据库连接
ConnectServer.close();
}
catch(Exception ee){
JOptionPane.showMessageDialog(null,"数据库操作失败!");
System.exit(0);
}
flagSQL1= false;
}
for(int i = 0;i < countSpeciality;i++){
jcbSpeciality.addItem(speciality[i]);
}
jpCenterTop.add(new JLabel(" 选择统计专业"));
jpCenterTop.add(jcbSpeciality);
}
if(jcbType.getSelectedItem().equals("按教师编号统计")){
if(flagSQL2){
try{
stm = ConnectServer.con.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs = stm.executeQuery("SELECT distinct master_number FROM master");
while(rs.next()){
Temp = rs.getString("master_number");
teacherNumber[countTeacherNumber] = Temp;
countTeacherNumber++;
}
stm.close(); //关闭数据库连接
ConnectServer.close();
}
catch(Exception ee){
JOptionPane.showMessageDialog(null,"数据库操作失败!");
System.exit(0);
}
flagSQL2 = false;
}
for(int i = 0;i < countTeacherNumber;i++){
jcbTeacherNumber.addItem(teacherNumber[i]);
}
jpCenterTop.add(new JLabel(" 选择教师编号"));
jpCenterTop.add(jcbTeacherNumber);
}
if(flagShow == false){
container.remove(2);
}
else{
flagShow = false;
}
jpCenter.add(jpCenterTop);
container.add(jpCenter);
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - 360) / 2,(screen.height - 500) / 2);
setTitle("学生人数统计");
setResizable(false);
setSize(350,390);
setVisible(true);
}
else if(e.getSource() == jcbSpeciality){
selectedItem1 = (String)jcbSpeciality.getSelectedItem();
selectedItem2 = null;
choice = true;
}
else if(e.getSource() == jcbTeacherNumber){
selectedItem2 = (String)jcbTeacherNumber.getSelectedItem();
selectedItem1= null;
choice = false;
}
else if(e.getSource() == jbAscertain){
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
jp1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
container.remove(2);
System.out.println("choice="+choice);
if(choice == true){
jp1.add(new JLabel(" 选择统计专业"));
jp1.add(jcbSpeciality);
}
else if(choice == false){
jp1.add(new JLabel(" 选择教师编号"));
jp1.add(jcbTeacherNumber);
}
jpCenter.add(jp1);
jpCenter.add(jp2);
jpCenter.add(jp3);
int recordCount = 0;
ConnectServer.mainLink(); //建立和数据库的连接。
String sql;
if(selectedItem1 != null){
try{
stm = ConnectServer.con.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
sql = "SELECT * FROM student WHERE speciality = '"+selectedItem1+"'";
rs = stm.executeQuery(sql);
while(rs.next()){ //统计记录数
recordCount++;
}
stm.close(); //关闭数据库连接
ConnectServer.close();
}
catch(SQLException ee){
JOptionPane.showMessageDialog(null,"数据库操作失败!");
System.exit(0);
}
jpCenterBottom.add(new JLabel("该专业学生人数为"));
jpCenterBottom.add(txtStaticNumber);
txtStaticNumber.setText(""+recordCount);
System.out.println("该专业学生人数为="+recordCount);
System.out.println("recordCount="+recordCount);
jpCenter.add(jpCenterBottom);
container.add(jpCenter);
}//if
else if(selectedItem2 != null){
try{
stm = ConnectServer.con.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
sql = "SELECT * FROM address WHERE address.master_number = '"+selectedItem2+"'";
rs = stm.executeQuery(sql);
while(rs.next()){ //统计记录数
recordCount++;
}
stm.close(); //关闭数据库连接
ConnectServer.close();
}
catch(SQLException ee){
JOptionPane.showMessageDialog(null,"数据库操作失败!");
System.exit(0);
}
jpCenterBottom.add(new JLabel("该班主任的学生人数为"));
jpCenterBottom.add(txtStaticNumber);
txtStaticNumber.setText(""+recordCount);
System.out.println("该班主任的学生人数为="+recordCount);
System.out.println("recordCount="+recordCount);
jpCenter.add(jpCenterBottom);
container.add(jpCenter);
}//else if
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screen.width - 360) / 2,(screen.height - 500) / 2);
setTitle("学生人数统计");
setResizable(false);
setSize(350,390);
setVisible(true);
}
else if(e.getSource() == jbExit){
dispose();
new MainWindow(userPriority);
}
}//actionPerformed
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -