addscore.java
来自「可以用的成绩管理系统」· Java 代码 · 共 274 行
JAVA
274 行
/**
* @(#)AddScore.java
*
*
* @author
* @version 1.00 2008/7/7
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.table.*;
import java.sql.*;
import java.util.*;
public class AddScore extends JFrame implements ActionListener{
JLabel jl1,jl2,jl3;
JComboBox jcb;
JButton jbtn1,jbtn2,jbtn3,jbtn4;
JTextField jtf1,jtf2,jtf3;
JTable jta;
JPanel jpl;
DefaultTableModel model;
DataBaseManager db = new DataBaseManager();
ResultSet rs;
public AddScore() {
jl1 = new JLabel("查询");
jl2 = new JLabel("课程号");
jl3 = new JLabel("课程名");
String [] strjcb = {"学号","姓名","院系","专业"};
jcb = new JComboBox(strjcb);
jtf1 = new JTextField(10);
jtf2 = new JTextField(10);
jtf3 = new JTextField(10);
jbtn1 = new JButton("查询");
jbtn1.addActionListener(this);
jbtn2 = new JButton("确定");
jbtn2.addActionListener(this);
jbtn3 = new JButton("添加成绩完毕");
jbtn3.addActionListener(this);
jbtn4 = new JButton("返回主界面");
jbtn4.addActionListener(this);
Object[][] arrayObj= {};
String[] colum = {"学号","姓名","性别","院系","专业","课程号","课程名","成绩","学分"};
model = new DefaultTableModel(arrayObj,colum);
jta = new JTable(model);//arrayObj,colum
jta.setCellSelectionEnabled(true);
jta.setShowGrid(true);
jta.setPreferredSize(new Dimension(800,600));
jta.setPreferredScrollableViewportSize(new Dimension(600,500));
JScrollPane scrollPane=new JScrollPane(jta);
jpl = new JPanel();
jpl.setLayout(new BorderLayout());
JPanel jpl14 = new JPanel();
jpl14.setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
jpl14.add(jl2);
jpl14.add(jtf2);
jpl14.add(jl3);
jpl14.add(jtf3);
jpl14.add(jbtn2);
JPanel jpl15 = new JPanel();
jpl15.setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
jpl15.add(jl1);
jpl15.add(jcb);
jpl15.add(jtf1);
jpl15.add(jbtn1);
jpl15.add(jpl14);
JPanel jpl11 = new JPanel();
jpl11.setLayout(new BorderLayout());
jpl11.add(jpl14,BorderLayout.SOUTH);
jpl11.add(jpl15,BorderLayout.NORTH);
JPanel jpl12 = new JPanel();
jpl12.setLayout(new FlowLayout());
jpl12.add(scrollPane);
JPanel jpl13 = new JPanel();
jpl13.setLayout(new FlowLayout());
jpl13.add(jbtn3);
jpl13.add(jbtn4);
jpl.add(jpl11,BorderLayout.NORTH);
jpl.add(jpl12,BorderLayout.CENTER);
jpl.add(jpl13,BorderLayout.SOUTH);
this.add(jpl);
this.setSize(700,500);
this.setLocation(150,150);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
Object o = e.getSource();
//查询学生信息
if(o.equals(jbtn1)){
//查询前先清除表格中内容
for(int i =model.getRowCount()-1;i>=0;i--){
model.removeRow(i);
jpl.repaint();
}
int type = jcb.getSelectedIndex();
switch(type){
case 0:
try{
String strSQL="select *from Student_Info where Student_ID='"+jtf1.getText().trim()+"'";
rs =db.getResult(strSQL);
while(rs.next()){
Object data[] = {rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5)};
model.addRow(data);//addRow()需要Object数组类型!
jpl.repaint();
}
if(model.getRowCount()==0){
JOptionPane.showMessageDialog(null,"没有搜索到记录!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}catch(SQLException ex){
System.out.println(ex);
}catch(NullPointerException ex){
System.out.println(ex);
}
break;
case 1:
try{
String strSQL="select *from Student_Info where Student_Name='"+jtf1.getText().trim()+"'";
rs =db.getResult(strSQL);
while(rs.next()){
Object data[] = {rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5)};
model.addRow(data);//addRow()需要Object数组类型!
jpl.repaint();
}
if(model.getRowCount()==0){
JOptionPane.showMessageDialog(null,"没有搜索到记录!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}catch(SQLException ex){
System.out.println(ex);
}catch(NullPointerException ex){
System.out.println(ex);
}
break;
case 2:
try{
String strSQL="select *from Student_Info where Student_Dept='"+jtf1.getText().trim()+"'";
rs =db.getResult(strSQL);
while(rs.next()){
Object data[] = {rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5)};
model.addRow(data);//addRow()需要Object数组类型!
jpl.repaint();
}
if(model.getRowCount()==0){
JOptionPane.showMessageDialog(null,"没有搜索到记录!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}catch(SQLException ex){
System.out.println(ex);
}catch(NullPointerException ex){
System.out.println(ex);
}
break;
case 3:
try{
String strSQL="select *from Student_Info where Student_Mjor='"+jtf1.getText().trim()+"'";
rs =db.getResult(strSQL);
while(rs.next()){
Object data[] = {rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4),rs.getString(5)};
model.addRow(data);//addRow()需要Object数组类型!
jpl.repaint();
}
if(model.getRowCount()==0){
JOptionPane.showMessageDialog(null,"没有搜索到记录!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}catch(SQLException ex){
System.out.println(ex);
}catch(NullPointerException ex){
System.out.println(ex);
}
break;
}
}
if(o.equals(jbtn2)){
for(int i =0;i<model.getRowCount();i++ ){
model.setValueAt(jtf2.getText().trim(),i,5);
model.setValueAt(jtf3.getText().trim(),i,6);
jpl.repaint();
}
}
if(o.equals(jbtn3)){
try{
int row = model.getRowCount();
int column = model.getColumnCount();
for(int i=0; i <row; i++){
if(model.getValueAt(i,7)==null|model.getValueAt(i,8)==null){
JOptionPane.showMessageDialog(null,"请将学生成绩及学分输入完整!","提示",JOptionPane.INFORMATION_MESSAGE);
break;
}
}
for(int i=0; i <row; i++){
Vector v = new Vector();
for(int j=0; j <column; j++){
v.add(model.getValueAt(i,j));
}
String strSQL = "insert into Student_Score values (" + "'" + v.get(0).toString() + "'" + "," +
"'" + v.get(5).toString() + "'" + "," + "'" + v.get(6).toString() + "'" + "," +
"'" + v.get(7).toString() + "'" + "," + "'" + v.get(8).toString() + "'" + ")";
if(!db.updateSql(strSQL)){
JOptionPane.showMessageDialog(null,"学生成绩登记失败!","提示",JOptionPane.INFORMATION_MESSAGE);
break;
}
if(db.updateSql(strSQL) && i==row){
JOptionPane.showMessageDialog(null,"学生成绩登记成功!","提示",JOptionPane.INFORMATION_MESSAGE);
}
}
}catch(NullPointerException ex){
System.out.println(ex);
}
}
if(o.equals(jbtn4)){
this.dispose();
new MainFace();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?