📄 studentinfoframe.java~93~
字号:
package prjStudent;
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.awt.Font;
import javax.swing.JScrollPane;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTable;
import prjTeacher.Teacher;
import java.sql.SQLException;
import java.util.ArrayList;
import prjsystementer.DBManager;
import java.sql.ResultSet;
import javax.swing.JPanel;
import javax.swing.JOptionPane;
import javax.swing.JTabbedPane;
import javax.swing.JDialog;
import javax.swing.table.TableModel;
import javax.swing.*;
public class StudentInfoFrame extends JDialog {
public StudentInfoFrame() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
getContentPane().setLayout(null);
lblInfo.setFont(new java.awt.Font("宋体", Font.BOLD, 25));
lblInfo.setText("学生信息列表");
lblInfo.setBounds(new Rectangle(167, 21, 183, 29));
jScrollPane1.setBounds(new Rectangle(8, 79, 462, 242));
lblSearch.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
lblSearch.setText("查询");
lblSearch.setBounds(new Rectangle(15, 341, 42, 15));
lblLook.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
lblLook.setText("查询条件:");
lblLook.setBounds(new Rectangle(17, 364, 91, 41));
cboCondition.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
cboCondition.setBounds(new Rectangle(100, 375, 110, 31));
cboCondition.addActionListener(new
StudentInfoFrame_cboCondition_actionAdapter(this));
txtCondition.setBounds(new Rectangle(220, 375, 163, 32));
btnSearch.setBounds(new Rectangle(392, 353, 80, 28));
btnSearch.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
btnSearch.setText("查询");
btnSearch.addActionListener(new
StudentInfoFrame_btnSearch_actionAdapter(this));
btnNew.setBounds(new Rectangle(17, 450, 88, 31));
btnNew.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
btnNew.setText("新增");
btnNew.addActionListener(new StudentInfoFrame_btnNew_actionAdapter(this));
btnEdit.setBounds(new Rectangle(124, 450, 91, 31));
btnEdit.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
btnEdit.setText("修改");
btnEdit.addActionListener(new StudentInfoFrame_btnEdit_actionAdapter(this));
btnCancel.setBounds(new Rectangle(354, 450, 92, 31));
btnCancel.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
btnCancel.setText("退出");
btnCancel.addActionListener(new
StudentInfoFrame_btnCancel_actionAdapter(this));
btnDelete.setBounds(new Rectangle(238, 450, 92, 31));
btnDelete.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
btnDelete.setText("删除");
btnDelete.addActionListener(new
StudentInfoFrame_btnDelete_actionAdapter(this));
this.setTitle("学生信息管理");
jButton1.setBounds(new Rectangle(386, 394, 91, 31));
jButton1.setFont(new java.awt.Font("宋体", Font.BOLD, 12));
jButton1.setText("重新查询");
jButton1.addActionListener(new StudentInfoFrame_jButton1_actionAdapter(this));
this.getContentPane().add(lblInfo);
this.getContentPane().add(jScrollPane1);
this.getContentPane().add(lblSearch);
this.getContentPane().add(lblLook);
this.getContentPane().add(txtCondition);
this.getContentPane().add(cboCondition);
this.getContentPane().add(btnNew);
this.getContentPane().add(btnCancel);
this.getContentPane().add(btnDelete);
this.getContentPane().add(btnEdit);
this.getContentPane().add(btnSearch);
this.getContentPane().add(jButton1);
jScrollPane1.getViewport().add(tblStudentInfo);
fillCbo();
fillTable(this.sql);
}
private void fillCbo() {
this.cboCondition.removeAllItems();
String[] ID = {"学生编号", "学生姓名"};
for (int i = 0; i < ID.length; i++) {
this.cboCondition.addItem(ID[i]);
}
}
String sql = "select * from T_STUDENT ";
private void fillTable(String sql) {
DBManager db = new DBManager();
ResultSet rs = db.ExecuteQuery(sql);
ArrayList al = new ArrayList();
try {
while (rs.next()) {
String stuId = rs.getString("stuID");
String stuName = rs.getString("stuName");
String sex = rs.getString("stuSex");
String stuBirthday = rs.getString("stuBirthday");
String classID = rs.getString("classID");
String stuPhone = rs.getString("stuPhone");
String stuInDate = rs.getString("stuInDate");
String stuAddress = rs.getString("stuAddress");
String memo = rs.getString("Memo");
Student s = new Student();
s.setID(stuId);
s.setName(stuName);
s.setSex(sex);
s.setBirthday(stuBirthday);
s.setClassId(classID);
s.setPhone(stuPhone);
s.setIndate(stuInDate);
s.setAddress(stuAddress);
s.setMemo(memo);
al.add(s);
}
studentModel cm = new studentModel();
cm.al = al;
tblStudentInfo.setModel(cm);
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public static void main(String[] args) {
StudentInfoFrame studentinfoframe = new StudentInfoFrame();
studentinfoframe.setSize(488, 519);
studentinfoframe.setDefaultCloseOperation(studentinfoframe.
DISPOSE_ON_CLOSE);
studentinfoframe.setVisible(true);
}
JLabel lblInfo = new JLabel();
JScrollPane jScrollPane1 = new JScrollPane();
JLabel lblSearch = new JLabel();
JLabel lblLook = new JLabel();
JComboBox cboCondition = new JComboBox();
JTextField txtCondition = new JTextField();
JButton btnSearch = new JButton();
JButton btnNew = new JButton();
JButton btnEdit = new JButton();
JButton btnCancel = new JButton();
JButton btnDelete = new JButton();
JTable tblStudentInfo = new JTable();
JButton jButton1 = new JButton();
public void btnCancel_actionPerformed(ActionEvent e) {
this.dispose();
}
public void cboCondition_actionPerformed(ActionEvent e) {
}
public void btnNew_actionPerformed(ActionEvent e) {
AddStudentInfoFrame s = new AddStudentInfoFrame();
s.setTitle("添加学生信息");
s.setSize(401, 380);
//显示弹出窗口的位置,现在在显示屏的中间
s.setLocation(300, 200);
s.setModal(true);
s.setDefaultCloseOperation(s.DISPOSE_ON_CLOSE);
s.setVisible(true);
fillTable(this.sql);
}
private int QueryStudent(String id) {
this.Id = id;
DBManager db = new DBManager();
String sql = "select * from T_EXAM where stuID='" + id + "'";
ResultSet rs = db.ExecuteQuery(sql);
try {
if (rs.next()) {
return 0;
}
} catch (SQLException ex) {
}
return 1;
}
String Id;
public void btnDelete_actionPerformed(ActionEvent e) {
int x = tblStudentInfo.getSelectedRow();
if (x < 0) {
JOptionPane.showMessageDialog(this, "请选择要删除的行");
return;
}
int question = JOptionPane.showConfirmDialog(this, "是否删除", "确认",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE);
if (question == JOptionPane.NO_OPTION) {
return;
}
TableModel cm = this.tblStudentInfo.getModel();
// studentModel cm = new studentModel();
Id = (String) cm.getValueAt(x, 0);
String sql = "delete from T_STUDENT where stuID='" + Id + "'";
int Result = QueryStudent(Id);
if (Result == 0) {
JOptionPane.showMessageDialog(this, "这为学生有成绩不能删除");
return;
}
DBManager db = new DBManager();
db.ExecuteUpdate(sql);
fillTable(this.sql);
}
public void btnSearch_actionPerformed(ActionEvent e) {
String look = (String)this.cboCondition.getSelectedItem();
String txt = this.txtCondition.getText();
String sql = "";
if (look.equals("学生编号")) {
sql = "select * from T_STUDENT where stuID='" + txt +
"'";
}
if (look.equals("学生姓名")) {
sql = "select * from T_STUDENT where stuName='" + txt +
"'";
}
if (txt.equals("")) {
JOptionPane.showMessageDialog(this, "请输入查询条件。");
return;
}
DBManager db = new DBManager();
db.ExecuteQuery(sql);
fillTable(sql);
}
public void btnEdit_actionPerformed(ActionEvent e) {
int x = this.tblStudentInfo.getSelectedRow();
if (x < 0) {
JOptionPane.showMessageDialog(this, "请选择要修改的行");
return;
}
TableModel sm = this.tblStudentInfo.getModel();
//stuID, stuName, stuSex, stuBirthday, classID, stuPhone, stuInDate, stuAddress,
String stuID = (String) sm.getValueAt(x, 0);
String stuName = (String) sm.getValueAt(x, 1);
String stuSex = (String) sm.getValueAt(x, 2);
String stuBirthday = (String) sm.getValueAt(x, 3);
String stuPhone = (String) sm.getValueAt(x, 4);
String stuInDate = (String) sm.getValueAt(x, 5);
String classID = (String) sm.getValueAt(x, 6);
String stuAddress = (String) sm.getValueAt(x, 7);
String Memo = (String) sm.getValueAt(x, 8);
Student s = new Student();
s.setID(stuID);
s.setName(stuName);
s.setSex(stuSex);
s.setBirthday(stuBirthday);
s.setClassId(classID);
s.setPhone(stuPhone);
s.setIndate(stuInDate);
s.setAddress(stuAddress);
s.setMemo(Memo);
AddStudentInfoFrame af = new AddStudentInfoFrame(s);
af.setSize(401, 380);
af.setLocation(300, 200);
af.setDefaultCloseOperation(af.DISPOSE_ON_CLOSE);
af.setModal(true);
af.setVisible(true);
fillTable(this.sql);
}
//此处新增加了一个重新查询的按钮,是为用户的多次查询提供方便。
public void jButton1_actionPerformed(ActionEvent e) {
//cbo里面的数据是从下标为0开始的
this.cboCondition.setSelectedIndex(0);
this.txtCondition.setText("");
fillTable(this.sql);
}
}
class StudentInfoFrame_jButton1_actionAdapter implements ActionListener {
private StudentInfoFrame adaptee;
StudentInfoFrame_jButton1_actionAdapter(StudentInfoFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class StudentInfoFrame_btnEdit_actionAdapter implements ActionListener {
private StudentInfoFrame adaptee;
StudentInfoFrame_btnEdit_actionAdapter(StudentInfoFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnEdit_actionPerformed(e);
}
}
class StudentInfoFrame_btnSearch_actionAdapter implements ActionListener {
private StudentInfoFrame adaptee;
StudentInfoFrame_btnSearch_actionAdapter(StudentInfoFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnSearch_actionPerformed(e);
}
}
class StudentInfoFrame_btnDelete_actionAdapter implements
ActionListener {
private StudentInfoFrame adaptee;
StudentInfoFrame_btnDelete_actionAdapter(StudentInfoFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnDelete_actionPerformed(e);
}
}
class StudentInfoFrame_btnNew_actionAdapter implements ActionListener {
private StudentInfoFrame adaptee;
StudentInfoFrame_btnNew_actionAdapter(StudentInfoFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnNew_actionPerformed(e);
}
}
class StudentInfoFrame_cboCondition_actionAdapter implements ActionListener {
private StudentInfoFrame adaptee;
StudentInfoFrame_cboCondition_actionAdapter(StudentInfoFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.cboCondition_actionPerformed(e);
}
}
class StudentInfoFrame_btnCancel_actionAdapter implements ActionListener {
private StudentInfoFrame adaptee;
StudentInfoFrame_btnCancel_actionAdapter(StudentInfoFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.btnCancel_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -