📄 addbanjischedule.java
字号:
package com.exam.ui.banzhuren;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.BorderFactory;
import javax.swing.DefaultCellEditor;
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.JTable;
import javax.swing.JTextField;
import javax.swing.table.TableColumn;
import com.exam.db.bean.BanJi;
import com.exam.db.bean.Course;
import com.exam.db.bean.Schedule;
import com.exam.db.bean.Teacher;
import com.exam.db.dao.BanJiDao;
import com.exam.db.dao.CourseDao;
import com.exam.db.dao.ScheduleDao;
import com.exam.db.dao.TeacherDao;
import com.exam.ui.SuperFrame;
import com.exam.ui.calendar.ShowCalendar;
public class AddBanJiSchedule extends SuperFrame {
private static final long serialVersionUID = 1L;
public JTextField txtBanJiDate = null;
JTable tblSchedule;
int row;
int num = 0;
JScrollPane scpSchedule;
public AddBanJiSchedule() {
try {
init();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
} catch (Exception e) {
e.printStackTrace();
}
}
private void init() {
this.setTitle("添加班级信息");
this.setSize(600, 450);
this.setCenter();
this.setResizable(false);
JPanel pnlTotal = new JPanel();
this.getContentPane().add(pnlTotal);
pnlTotal.setLayout(null);
JPanel pnlTop = new JPanel();
pnlTop.setBounds(30, 20, 210, 315);
pnlTop.setBorder(BorderFactory.createTitledBorder("班级信息"));
pnlTotal.add(pnlTop);
pnlTop.setLayout(null);
JLabel lblBanJiID = new JLabel("班级名称");
lblBanJiID.setBounds(20, 100, 60, 25);
pnlTop.add(lblBanJiID);
final JTextField txtBanJiID = new JTextField();
txtBanJiID.setBounds(80, 100, 105, 25);
pnlTop.add(txtBanJiID);
JLabel lblBanJiDate = new JLabel("开学时间");
lblBanJiDate.setBounds(20, 240, 60, 25);
pnlTop.add(lblBanJiDate);
txtBanJiDate = new JTextField();
txtBanJiDate.setEditable(false);
txtBanJiDate.setBounds(80, 240, 80, 25);
pnlTop.add(txtBanJiDate);
JButton btnCalendar = new JButton("...");
btnCalendar.setBounds(160, 240, 25, 25);
btnCalendar.setMargin(new Insets(0, 0, 0, 0));
pnlTop.add(btnCalendar);
JLabel lblTeaID = new JLabel("班 主 任");
lblTeaID.setBounds(20, 170, 60, 25);
pnlTop.add(lblTeaID);
final JComboBox cboTeaID = new JComboBox();
cboTeaID.addItem("");
cboTeaID.setBounds(80, 170, 105, 25);
pnlTop.add(cboTeaID);
// 添加下拉列表的数据(从数据库中读出来添加)
List<Teacher> list = new ArrayList<Teacher>();
TeacherDao teacherDao = new TeacherDao();
Teacher teacher = null;
list = teacherDao.selectAllBySort(2);
for (int i = 0; i < list.size(); i++) {
teacher = new Teacher();
teacher = list.get(i);
String teaName = teacher.getTeaName();
cboTeaID.addItem(teaName);
}
final JLabel lblGrade = new JLabel("年 级");
lblGrade.setBounds(20, 30, 60, 25);
pnlTop.add(lblGrade);
final JComboBox cboGrade = new JComboBox();
cboGrade.addItem("S1");
cboGrade.addItem("S2");
cboGrade.addItem("Y2");
cboGrade.setBounds(80, 30, 105, 25);
pnlTop.add(cboGrade);
JPanel pnlBottom = new JPanel();
pnlBottom.setBounds(265, 20, 300, 315);
pnlBottom.setBorder(BorderFactory.createTitledBorder("课程信息"));
pnlTotal.add(pnlBottom);
pnlBottom.setLayout(null);
Object[][] data = new String[10][2];
Object[] columns = { "课程名称", "任课教师" };
tblSchedule = new JTable(data, columns){
private static final long serialVersionUID = 1L;
public boolean isCellEditable(int row, int col) {
if(col == 0){
return false;
}
return true;
}
};
tblSchedule.setRowHeight(24);
scpSchedule = new JScrollPane(tblSchedule);
scpSchedule.setBounds(10, 30, 280, 262);
pnlBottom.add(scpSchedule);
showSchedule("S1");
final JComboBox cboTeaName = new JComboBox();
cboTeaName.addItem("");
list = teacherDao.selectAllBySort(3);
for (int i = 0; i < list.size(); i++) {
teacher = new Teacher();
teacher = list.get(i);
String teaName = teacher.getTeaName();
cboTeaName.addItem(teaName);
}
TableColumn tc = tblSchedule.getColumnModel().getColumn(1);
tc.setCellEditor(new DefaultCellEditor(cboTeaName));
JButton btnSave = new JButton("保 存");
btnSave.setBounds(138, 360, 100, 25);
pnlTotal.add(btnSave);
JButton btnCancel = new JButton("重 置");
btnCancel.setBounds(350, 360, 100, 25);
pnlTotal.add(btnCancel);
btnCalendar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
showDate();
}
});
btnCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
txtBanJiID.setText("");
txtBanJiDate.setText("");
cboTeaID.setSelectedIndex(0);
cboGrade.setSelectedIndex(0);
for (int i = 0; i < 10; i++) {
tblSchedule.setValueAt("", i, 1);
}
}
});
cboGrade.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent arg0) {
if (arg0.getItem().equals("S1")) {
clear();
showSchedule("S1");
} else if (arg0.getItem().equals("S2")) {
clear();
showSchedule("S2");
} else {
clear();
showSchedule("Y2");
}
}
});
btnSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
int sum = 0;
Teacher teacher = new Teacher();
TeacherDao teacherDao = new TeacherDao();
String grade = cboGrade.getSelectedItem().toString();
String banJiID = txtBanJiID.getText();
String banJiDate = txtBanJiDate.getText();
if (banJiID.equals("")) {
JOptionPane.showMessageDialog(null, "请输入班级名称!");
txtBanJiID.requestFocus();
return;
} else if (banJiID.length() > 5) {
JOptionPane.showMessageDialog(null, "请输入正确的班级名称!");
txtBanJiID.requestFocus();
return;
}
String teaID = "";
String teaName = cboTeaID.getSelectedItem().toString().trim();
if (teaName.equals("")) {
JOptionPane.showMessageDialog(null, "请选择班主任!");
return;
} else {
teacher = teacherDao.selectTeaIDByTeaName(teaName);
teaID = teacher.getTeaID();
}
if (teaID.equals("")) {
JOptionPane.showMessageDialog(null, "请选择班主任!");
return;
}
if (cboTeaID.getSelectedIndex() == 0) {
JOptionPane.showMessageDialog(null, "请选择班主任!");
return;
}
if (banJiDate.equals("")) {
JOptionPane.showMessageDialog(null, "请选择开学时间!");
return;
}
BanJi banJi = new BanJi();
BanJiDao banJiDao = new BanJiDao();
banJi.setBanJiID(banJiID);
banJi.setBanJiDate(banJiDate);
banJi.setTeaID(teaID);
banJi.setGrade(grade);
for (int i = 0; i < num; i++) {
String str = "";
try {
str = tblSchedule.getValueAt(i, 1).toString();
} catch (NullPointerException e) {
JOptionPane.showMessageDialog(null, "请选择任课教师!");
return;
}
if (str.equals("")) {
JOptionPane.showMessageDialog(null, "请选择任课教师!");
return;
}
}
int result = banJiDao.insertBanJi(banJi);
sum += result;
for (int i = 0; i < num; i++) {
ScheduleDao scheduleDao = new ScheduleDao();
Schedule schedule = new Schedule();
String courseName = tblSchedule.getValueAt(i, 0).toString()
.trim();
String teacherName = tblSchedule.getValueAt(i, 1)
.toString().trim();
CourseDao courseDao = new CourseDao();
Course course = courseDao.selectCourseIDByName(courseName);
int couID = course.getCouID();
teacher = teacherDao.selectTeaIDByTeaName(teacherName);
String teacherID = teacher.getTeaID();
schedule.setBanJiID(banJiID);
schedule.setCouID(couID);
schedule.setTeaID(teacherID);
result = scheduleDao.insertSchedule(schedule);
sum += result;
}
if (sum == (num + 1)) {
JOptionPane.showMessageDialog(null, "保存成功!");
dispose();
} else {
JOptionPane.showMessageDialog(null, "保存失败!\n班级重名!");
}
}
});
}
public void clear() {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 2; j++) {
tblSchedule.setValueAt("", i, j);
}
}
}
public int showSchedule(String grade) {
CourseDao courseDao = new CourseDao();
List<Course> list2 = new ArrayList<Course>();
list2 = courseDao.selectCourseNameByGrade(grade);
num = list2.size();
for (int i = 0; i < num; i++) {
tblSchedule.setValueAt(list2.get(i).getCouName(), i, 0);
}
return num;
}
public void showDate() {
new ShowCalendar(this);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -