成绩管理系统无法增加、修改、删除
梓颜紫霞 2016-01-05 04:18:27 package bag;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
public class Face_G implements ActionListener{//成绩管理界面
private JFrame frame;
private JPanel[] pane = new JPanel[5];
private JButton[] btn = new JButton[5];
private JTextField[] field = new JTextField[8];
private DefaultComboBoxModel<String>[] cm = new DefaultComboBoxModel[3];
private JComboBox<String>[] box = new JComboBox[3];
private DefaultTableModel tm;
private JTable table;
private JScrollPane scroll;
private GradeDAO dao = new GradeDAO();
public Face_G(){
frame = new JFrame("Grade");
for(int i = 0; i < 5; i++){
pane[i] = new JPanel();
}
btn[0] = new JButton("增加");
btn[1] = new JButton("修改");
btn[2] = new JButton("删除");
btn[3] = new JButton("查询");
btn[4] = new JButton("刷新");
for(int i = 0; i < 8; i++){
field[i] = new JTextField();
}
for(int i = 0; i < 3; i++){
cm[i] = new DefaultComboBoxModel<String>();
box[i] = new JComboBox<String>(cm[i]);
}
Object[] names = {"学号","姓名","课程名","分数"};
tm = new DefaultTableModel(names, 0);
table = new JTable(tm);
scroll = new JScrollPane(table);
}
public void G(){
frame.setResizable(false);
frame.setSize(1000, 600);
Dimension ds = Toolkit.getDefaultToolkit().getScreenSize();
Dimension fs = frame.getSize();
frame.setLocation((ds.width-fs.width)/2, (ds.height-fs.height)/2);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
for(int i = 0; i < 5; i++){
pane[i].setBackground(new Color(60,17,44));
pane[i].setBorder(BorderFactory.createLineBorder(new Color(73,130,235), 1));
}
pane[2].setPreferredSize(new Dimension(190,180));
pane[3].setPreferredSize(new Dimension(190,180));
pane[4].setPreferredSize(new Dimension(190,120));
for(int i = 0; i < 5; i++){
btn[i].setBackground(new Color(64,96,17));
btn[i].setForeground(new Color(206,226,199));
btn[i].setPreferredSize(new Dimension(100, 30));
btn[i].addActionListener(this);
}
for(int i = 0; i < 3; i++){
btn[i].setPreferredSize(new Dimension(160, 30));
}
for(int i = 0; i < 8; i++){
field[i].setPreferredSize(new Dimension(120,30));
field[i].setBackground(new Color(109,12,102));
field[i].setForeground(new Color(50,177,205));
field[i].setCaretColor(new Color(50,177,205));
field[i].setBorder(BorderFactory.createLineBorder(new Color(133,37,135), 1));
}
for(int i = 0; i < 3; i++){
box[i].addActionListener(this);
box[i].setPreferredSize(new Dimension(100,30));
}
table.setBackground(new Color(40,40,40));
table.setForeground(new Color(0,198,255));
table.setRowHeight(40);
table.setFont(new Font("",Font.PLAIN,20));
init();
//添加组件
pane[0].add(getJLabel("学号 "));
pane[0].add(box[0]);
pane[0].add(getJLabel("课程号"));
pane[0].add(box[1]);
pane[0].add(getJLabel("班级 "));
pane[0].add(box[2]);
pane[0].add(btn[3]);
pane[0].add(btn[4]);
pane[2].add(getJLabel("学号 "));
pane[2].add(field[0]);
pane[2].add(getJLabel("课程号"));
pane[2].add(field[1]);
pane[2].add(getJLabel("分数 "));
pane[2].add(field[2]);
pane[2].add(btn[0]);
pane[3].add(getJLabel("学号 "));
pane[3].add(field[3]);
pane[3].add(getJLabel("课程号"));
pane[3].add(field[4]);
pane[3].add(getJLabel("分数 "));
pane[3].add(field[5]);
pane[3].add(btn[1]);
pane[4].add(getJLabel("学号 "));
pane[4].add(field[6]);
pane[4].add(getJLabel("课程号"));
pane[4].add(field[7]);
pane[4].add(btn[2]);
pane[1].add(pane[2]);
pane[1].add(pane[3]);
pane[1].add(pane[4]);
//分割面板
JSplitPane split1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, pane[0], scroll);
split1.setDividerSize(2);
split1.setDividerLocation(60);
split1.setBorder(BorderFactory.createLineBorder(new Color(73,130,235), 1));
JSplitPane split2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, pane[1], split1);
split2.setDividerSize(2);
split2.setDividerLocation(200);
split2.setBorder(BorderFactory.createLineBorder(new Color(73,130,235), 1));
frame.add(split2);
frame.setVisible(true);
}
private JLabel getJLabel(String str){
JLabel lab = new JLabel(str);
lab.setForeground(new Color(140,180,240));
return lab;
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btn[0]){//增加
Grade grade = new Grade();
grade.setSno(field[0].getText());
grade.setCno(field[1].getText());
grade.setGrade(field[2].getText());
if(dao.insert(grade)){
JOptionPane.showMessageDialog(frame, "插入成功!");
}else{
JOptionPane.showMessageDialog(frame, "插入失败!");
}
}
if(e.getSource() == btn[1]){//修改
Grade grade = new Grade();
grade.setSno(field[3].getText());
grade.setCno(field[4].getText());
grade.setGrade(field[5].getText());
if(dao.update(grade)){
JOptionPane.showMessageDialog(frame, "修改成功!");
}else{
JOptionPane.showMessageDialog(frame, "修改失败!");
}
}
if(e.getSource() == btn[2]){//删除
String str1 = field[6].getText();
String str2 = field[7].getText();
if(dao.delete(str1,str2)){
JOptionPane.showMessageDialog(frame, "删除成功!");
}else{
JOptionPane.showMessageDialog(frame, "删除失败!");
}
}
if(e.getSource() == btn[3]){//查询
boolean b1 = box[0].getSelectedItem().equals("");
boolean b2 = box[1].getSelectedItem().equals("");
boolean b3 = box[2].getSelectedItem().equals("");
if(b1 && b2 && b3){//未选择
JOptionPane.showMessageDialog(frame, "请选择查询条件!");
}else if(!b1 && b2 && b3){//按照学号查询
int count = tm.getRowCount();
for(int i = 0; i < count; i++){
tm.removeRow(0);
}
List<String[]> list = dao.queryBySno(box[0].getSelectedItem().toString());
if(!list.isEmpty()){
for(int i = 0; i < list.size(); i++){
Object[] obj = new Object[4];
int j = 0;
for(String s : list.get(i)){
obj[j] = s;
j++;
}
tm.addRow(obj);
}
}else{
JOptionPane.showMessageDialog(frame, "无此学生的成绩单");
}
}else if(b1 && !b2 && b3){//按照课程查询
int count = tm.getRowCount();
for(int i = 0; i < count; i++){
tm.removeRow(0);
}
List<String[]> list = dao.queryByCno(box[1].getSelectedItem().toString());
if(!list.isEmpty()){
for(int i = 0; i < list.size(); i++){
Object[] obj = new Object[4];
for(int j = 0; j < 4; j++){
obj[j] = list.get(i)[j];
}
tm.addRow(obj);
}
}else{
JOptionPane.showMessageDialog(frame, "无此课程的成绩单");
}
}else if(b1 && b2 && !b3){//按照班级查询
int count = tm.getRowCount();
for(int i = 0; i < count; i++){
tm.removeRow(0);
}
List<String[]> list = dao.queryBySclass(box[2].getSelectedItem().toString());
if(!list.isEmpty()){
for(int i = 0; i < list.size(); i++){
Object[] obj = new Object[4];
for(int j = 0; j < 4; j++){
obj[j] = list.get(i)[j];
}
tm.addRow(obj);
}
}else{
JOptionPane.showMessageDialog(frame, "无此班级的成绩单");
}
}else if(b1 && !b2 && !b3){//课程+班级查询
int count = tm.getRowCount();
for(int i = 0; i < count; i++){
tm.removeRow(0);
}
List<String[]> list = dao.queryBySC(box[1].getSelectedItem().toString()
,box[2].getSelectedItem().toString());
if(!list.isEmpty()){
for(int i = 0; i < list.size(); i++){
Object[] obj = new Object[4];
for(int j = 0; j < 4; j++){
obj[j] = list.get(i)[j];
}
tm.addRow(obj);
}
}else{
JOptionPane.showMessageDialog(null, "请核对该课程或该班级的成绩单已经录入!");
}
}else{
JOptionPane.showMessageDialog(frame, "请核对查询条件!");
}
}
if(e.getSource() == btn[4]){//刷新
//清空
for(int i = 0; i < 3; i++){
cm[i].removeAllElements();
}
init();
}
}
private void init(){
StudentDAO studao = new StudentDAO();
List<String> list = studao.queryAll();
boolean is2 = false;
for(String s : list){
if(s.equals("|")){
is2 = true;
continue;
}
if(is2){
cm[2].addElement(s);
}else{
cm[0].addElement(s);
}
}
CourseDAO codao = new CourseDAO();
list = codao.queryAll();
for(String s : list){
cm[1].addElement(s);
}
}
}