📄 editscore.java
字号:
package scoremis;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import java.sql.*;
import java.util.*;
public class EditScore extends JFrame
{
String kc,bj,xq;
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 xgai=new JButton("修改");
JButton tijiao=new JButton("提交");
ResultSet rs=null; //设数据集初值为空
Vector tempvector=new Vector(1,1);//制作表格
DefaultTableModel model=new DefaultTableModel();
JTabel dbtable=new JTable(model);
JScrollPane jScrollPanel=new JScrollPane(dbtable);//为表格添加滚动条
String tname,psd,sql="";
public EditScore(String name,String psd)
{
try
{
tname=name;
this.psd=psd;
jbInit();
}
catch(Exception exception)
{exception.printStackTrace();}
}
private void jbInit() throws Exception
{
p.add(l1); //在面板中添加各个组件
p.add(course);
p.add(l2);
p.add(tgreade);
p.add(l3);
p.add(term);
p.add(sure);
p.add(xgai);
p.add(tijiao);
add(p,"North"); //在窗体中添加面板
add(jScrollPanel,"Center");
sure.addActionListener(new chaxun());//为"查询","修改","提交"按钮添加监视器
xgai.addActionListener(new chaxun());
tijiao.addActionListener(new chaxun());
model.addColumn("学号");//为表格添加各个列并未各个列命名
model.addColumn("姓名");
model.addColumn("成绩");
course.addItem("请选择课程");//为课程,班级,学期选择框添加选项
tgreade.addItem(" 请选择班级");
term.addItem("请选择学期");
sql="select cname,Cgreade from T_C,teacher where T_C.tID=teacher.ID and teacher.name='"+tname+"'";
try
{
dbconn db=new dbconn();//构造并执行sql语句并在"课程","班级"组合框中添加相应选项
rs=db.Query(sql);
while(rs.next())
{
course.addItem(rs.getString(1));
tgreade.addItem(rs.getString(2));
}
sql="select distinct Term from T_C,teacher where T_C.tId=teacher.ID and teacher.name='"+tname+"'";
rs=db.Query(sql);//构造并执行sql语句并在选择框中添加相应的选项
while(rs.next())
term.addItem(rs.getString(1));
}
catch(Exception er)
{
System.out.println(er.toString);
}
}
class chaxun implements ActionListener //事件处理类
{
public void actionPerformed(ActionEvent e)
{
dbconn db=new dbconn();//重建与数据库的连接
kc=(String)course.getSelectedItem();//分别利用字符串变量kc,bj,xq分别存放选择框"课程","班级","学期"中选中的选项
bj=(String)tgreade.getSelectedItem();
xq=(String)term.getSelectedItem();
if(e.getSource()==sure) //"查询"按钮获得焦点的事件处理
{
int j=model.getRowCount();//删除表格中原有数据
if(j>0)
{
for(int i=0;i<j;i++)
model.removeRow(0);
}
sql="select SID,Sname,score from S_C where Tgreade='"+bj+"' and Cname='"+kc+"' and Term='"+xq+"'";
try
{
rs=db.Query(sql);
int i=0;
while(rs.next())
{
i++;
tempvector=new Vector(1,1); //
tempvector.add(rs.getString(1));
tempvector.add(rs.getString(2));
tempvector.add(rs.getFloat(3));
model.addRow(tempvector);
}
if(i==0)
JOptionPane.showMessageDialog(null,"该门课程成绩没有录入,请录入成绩");
dbtable.setEnabled(false);
}
catch(Exception e2)
{
System.out.println(e2.toString);
}
}
else if(e.getSource()==xgai) //如果"修改"按钮获得焦点的事件处理使表格的可用性置为true
{
dbtalbe.setEnabled(true);
}
else if(e.getSource()==tijiao)//提交按钮获得焦点的事件处理
{
int n=model.getRowCount();//统计表格中数据的行数
PreparedStatement updatestmt; //
sql="update S_C set score=? where SID=? and Term='"+xq+"'";
try
{
if(model.getValueAt(n-1,2)!=null)
{
updatestmt=db.conn.prepareStatement(sql);
for(int i=0;i<n;i++) //
{
updatestmt.setString(2,(String) model.getValueAt(i,0));
updatestmt.setFloat(1,Float.parseFloat((String)model.getValueAt(i,2)));
updatestmt.executeUpdate();
}
JOptionPane.showMessageDialog(null,"修改成功");
}
}
catch(Exception e3)
{}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -