📄 queryscore.java
字号:
package scoremis;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.sql.*;
import java.util.*;
import javax.swing.table.*;
import javax.swing.event.*;
public class QueryScore extends JFrame
{
String kc,bj,xq,sql
JPanel p=new JPanel(); //初始化各个组件
JLabel l1=new JLabel("课程");
JComboBox course=new JComboBox();
JLabel l2=new JLabel("班级");
JComboBox tgreade=new JComboBox();
JLabel l3=new JLabel("学期");
JComboBox term=new JComboBox();
JButton sure=new JButton("查询");
JButton quxian=new JButton(" 查看成绩分布");
ResultSet rs=null;
Vector tempvector=new Vector(1,1);//设置表格
DefaultTableModel model=new DefaultTableModel();
JTable dbtable=new JTabel(model);
JScrollPane jScrollPanel=new JScrollPane(dbtable);
String tname,psd,sf;
public QueryScore(String name,String psd,String sf)//该类的构造方法
{
try
{
tname=name;
this.psd=psd;
this.sf=sf;
jbInit();
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
private void jbInit() throws Exception
{
setLayout(new BorderLayout()); //设置布局管理器的布局方式微表格布局
p.add(l1); //在面板中添加各个组件
p.add(course);
p.add(l2);
p.add(tgreade);
p.add(l3);
p.add(term);
p.add(sure);
p.add(quxian);
add(p,"North");
model.addColumn("学号"); //在表格中添加各个列名
model.addColumn("姓名");
model.addColumn("成绩");
add(jScrollPanel,"Center");
sure.addActionListener(new chaxun()); //分别给"查询","查看成绩分布"按钮添加监视器
quxian.addActionListener(new chaxun());
quxian.setEnabled(false);
course.addItem("请选择课程");
course.addActionListener(new cquery());
tgreade.addItem("请选择班级");
term.addItem("请选择学期");
if(sf.equals("教师")) //如果是教师,给课程添加项目
{
sql="select distinct T_C.cname from T_C,teacher where teacher.name='"+tname+"' and teacher.ID=T_C.tID";
}
else
{
sql="select distinct T_C.cname from T_C";
}
try
{
dbconn db=new dbconn();//执行相应的sql语句
rs=db.Query(sql);
while(rs.next())
{
course.addItem(rs.getString(1));
}
}
catch(Exception er)
{
System.out.println(er.toString())
}
}
class cquery implements ActionListener//给班级和学期添加项目
{
public void actionPerformed(ActionEvent e)
{
dbconn db=new dbconn();
if(e.getSource()==course)
{
kc=(String) course.getSelectedItem();
if(sf.equals("教师"))
{
sql="select T_C.Cgreade from T_C,teacher where teacher.name='"+tname+"' and teacher.ID=T_C.tID and T_C.cname='"+kc+"'";
}
else
{
sql="select T_C.Cgreade from T_C";
}
try
{
tgreade.removeAllItems();
tgreade.addItem("请选择班级");
rs=db.Query(sql);
while(rs.next())
{
tgreade.addItem(rs.getString(1));
}
sql="select distinct Term from T_c where cname='"+kc+"'";
term.removeAllItems();
term.addItem("请选择学期");
rs=db.Query(sql);
while(rs.next())
{
term.addItem(rs.getString(1));
}
}
catch(Exception e2)
{
System.out.println(e2.toString());
}
}
}
}
class chaxun implements ActionListener //事件处理类
{
public void actionPerformed(ActionEvent e)
{
dbconn db=new dbconn();
kc=(String) course.getSelectedItem();
bj=(String) tgreade.getSelectedItem();
xq=(String) term.getSelectedItem();
if(e.getSource()==sure)
{
sql="select SID,Sname,score from S_C where Tgreade='"+ bj +"' and Cname='"+ kc +"' and Term='"+ xq +"'";
try //删除表格中原有的数据
{
int j=model.getRowCount();
if(j>0)
{
for(int i=0;i<j;i++)
model.removeRow(0);
}
rs=db.Query(sql);//从数据库中查询相应的数据
int i=0;
while(rs.next())
{
tempvector=new Vector(1,1);
tempvector.add(rs.getString(2));
tempvector.add(rs.getString(1));
tempvector.add(rs.getFloat(3));
model.addRow(tempvector);
i++;
}
if(i==0)
JOptionPane.showMessageDialog(null,"没有录入该们课程的成绩");
else
quxian.setEnabled(true);
dbtable.setEnabled(false);//设置表格中的数据设置为不能修改状态
}
catch(Exception e2)
{
System.out.println(e2.toString());
}
}
else if(e.getSource()==quxian)//对"查询成绩分布"按钮进行处理
{
String k=kc;
String b=bj;
JFrame f=new JFrame();
Toolkit tk=new Toolkit.getDefaultToolkit();
Dimension sSize=tk.getScreenSize();
int sh=sSize.height;
int sw=sSize.width;
f.setSize(sw/2,sh/2);
f.setLocation(sw/4,sh/4);
drawTu d=new drawTu(k,b);//构造函数,用于调用类drawTu
f.add(d);
f.setVisible(true);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -