简单学生管理系统 Oracle数据库实现
ui包:
Main类:实现增删改查
addStudentDialog类:添加信息对话框编辑
package com.stu.ui;
import com.stu.model.Student;
import com.stu.model.StudentTableModel;
import com.stu.util.*;
import javax.swing.JOptionPane;
public class Main extends javax.swing.JFrame {
public Main() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
sexButtonGroup = new javax.swing.ButtonGroup();
jLabel1 = new javax.swing.JLabel();
snoQueryText = new javax.swing.JTextField();
queryButton = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
studentTable = new javax.swing.JTable();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
snoText = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
maleRadioButton = new javax.swing.JRadioButton();
femaleRadioButton = new javax.swing.JRadioButton();
jLabel6 = new javax.swing.JLabel();
snameText = new javax.swing.JTextField();
jLabel7 = new javax.swing.JLabel();
sageText = new javax.swing.JTextField();
jLabel8 = new javax.swing.JLabel();
sdeptText = new javax.swing.JTextField();
addStudentButton = new javax.swing.JButton();
updateStudentButton = new javax.swing.JButton();
deleteStudentButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("请输入需要查询的学号:");
snoQueryText.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
snoQueryTextActionPerformed(evt);
}
});
queryButton.setText("查询");
queryButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
queryButtonActionPerformed(evt);
}
});
studentTable.setModel(stuModel);
studentTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
studentTable.getTableHeader().setResizingAllowed(false);
studentTable.getTableHeader().setReorderingAllowed(false);
studentTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
studentTableMouseClicked(evt);
}
});
jScrollPane1.setViewportView(studentTable);
jLabel2.setText("作者信息: 班级:软件182 姓名: 尤海龙");
jLabel3.setText("学生信息:");
jLabel4.setText("学生学号:");
snoText.setEditable(false);
jLabel5.setText("性别:");
sexButtonGroup.add(maleRadioButton);
maleRadioButton.setSelected(true);
maleRadioButton.setText("男");
maleRadioButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
maleRadioButtonActionPerformed(evt);
}
});
sexButtonGroup.add(femaleRadioButton);
femaleRadioButton.setText("女");
femaleRadioButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
femaleRadioButtonActionPerformed(evt);
}
});
jLabel6.setText("姓名:");
jLabel7.setText("年龄:");
sageText.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
sageTextActionPerformed(evt);
}
});
jLabel8.setText("系部:");
addStudentButton.setText("添加");
addStudentButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addStudentButtonActionPerformed(evt);
}
});
updateStudentButton.setText("更新");
updateStudentButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateStudentButtonActionPerformed(evt);
}
});
deleteStudentButton.setText("删除");
deleteStudentButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteStudentButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(snoQueryText, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(49, 49, 49)
.addComponent(queryButton)
.addGap(18, 18, 18)
.addComponent(jLabel2))
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel3)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5)
.addGap(61, 61, 61)
.addComponent(maleRadioButton)
.addGap(47, 47, 47)
.addComponent(femaleRadioButton)))
.addGap(0, 110, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(snoText, javax.swing.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE)
.addComponent(snameText)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel7)
.addComponent(jLabel8))
.addGap(75, 75, 75)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sageText)
.addComponent(sdeptText))))
.addGap(105, 105, 105))
.addGroup(layout.createSequentialGroup()
.addGap(2, 2, 2)
.addComponent(addStudentButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(updateStudentButton)
.addGap(114, 114, 114)
.addComponent(deleteStudentButton)
.addGap(43, 43, 43)))))
.addGap(0, 0, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(snoQueryText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(queryButton)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 369, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(snoText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel4)))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel6)
.addComponent(snameText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(maleRadioButton)
.addComponent(femaleRadioButton))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel7)
.addComponent(sageText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel8)
.addComponent(sdeptText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(addStudentButton)
.addComponent(updateStudentButton)
.addComponent(deleteStudentButton))
.addGap(34, 34, 34))))
);
pack();
}// </editor-fold>
private void maleRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void femaleRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void sageTextActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void studentTableMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
// 获取表格选定行的索引;如果没有选定的行,则返回 -1
int rowNum = studentTable.getSelectedRow();
if (rowNum >= 0) {
// 获取所选择行的第0列的值,也就是学号的值
String sno = (String) studentTable.getValueAt(rowNum, 0);
if (snoQueryText.getText().trim().equals(sno)) {
return;
}
String sname = (String) studentTable.getValueAt(rowNum, 1);
String ssex = (String) studentTable.getValueAt(rowNum, 2);
int sage = (int) studentTable.getValueAt(rowNum, 3);
String sdept = (String) studentTable.getValueAt(rowNum, 4);
snoQueryText.setText(sno);
snoText.setText(sno);
snameText.setText(sname);
if ("男".equals(ssex)) {
maleRadioButton.setSelected(true);
} else {
femaleRadioButton.setSelected(true);
}
sageText.setText(String.valueOf(sage));
sdeptText.setText(sdept);
}
}
private void queryButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
// 获取要查询的学生学号
String sno = snoQueryText.getText().trim();
if ("".equals(sno)) {
stuModel = new StudentTableModel();
} else {
stuModel = new StudentTableModel(sno);
}
// 设置表格模型
studentTable.setModel(stuModel);
snoQueryText.setText("");
}
private void updateStudentButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String sno = snoText.getText().trim();
String sname = snameText.getText().trim();
String ssex;
if (maleRadioButton.isSelected()) {
ssex = maleRadioButton.getText();
} else {
ssex = femaleRadioButton.getText();
}
String sage = sageText.getText().trim();
String sdept = sdeptText.getText().trim();
if ("".equals(sno) || sno == null) {
JOptionPane.showMessageDialog(this, "请选择一条要修改的学生记录!");
return;
}
// 验证修改信息的有效性
if (!validateData(sno, sname, ssex, sage, sdept)) {
return;
}
Student stu = new Student(sno, sname, ssex, Integer.parseInt(sage), sdept);
System.out.println("修改的信息:"+stu.toString());
//如果数据验证正确,则插入学生记录内容
if (!DaoFactory.getStudentDao().updateStudent(stu)) {
JOptionPane.showMessageDialog(this, "学生记录更新失败,请检查输入的数据内容!");
}
// 数据发生变化,更新表格模型
stuModel = new StudentTableModel();
studentTable.setModel(stuModel);
}
// 验证输入信息的有效性
private boolean validateData(String sno, String sname, String ssex, String sage, String sdept) {
if ("".equals(sno) || sno.length() != 7) {
JOptionPane.showMessageDialog(this, "请输入正确的学号,并且学号为数字!");
snoText.requestFocus();
return false;
}
if ("".equals(sname)) {
JOptionPane.showMessageDialog(this, "请输入学生姓名!");
snameText.requestFocus();
return false;
}
try {
if (Integer.parseInt(sage) < 15 || Integer.parseInt(sage) > 45) {
JOptionPane.showMessageDialog(this, "学生年龄范围在15到45岁之间!");
sageText.requestFocus();
return false;
}
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(this, "请输入正确的年龄!");
sageText.requestFocus();
return false;
}
if ("".equals(sdept)) {
JOptionPane.showMessageDialog(this, "请输入系部名称!");
sdeptText.requestFocus();
return false;
}
return true;
}
private void deleteStudentButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int rowNum = studentTable.getSelectedRow();
if (rowNum >= 0) {
String sno = snoText.getText().trim();
int choise = JOptionPane.showConfirmDialog(this, "是否要删除学生的信息内容", "提示", JOptionPane.YES_NO_OPTION);
if (choise == JOptionPane.YES_OPTION) {
if (!DaoFactory.getStudentDao().deleteStudent(sno)) {
JOptionPane.showMessageDialog(this, "学生信息删除失败,请与系统管理员联系!");
}
stuModel = new StudentTableModel();
studentTable.setModel(stuModel);
}
} else {
JOptionPane.showMessageDialog(this, "请选择要删除的学生信息!");
}
snoText.setText(null);
snameText.setText(null);
maleRadioButton.setSelected(true);
sageText.setText(null);
sdeptText.setText(null);
}
private void addStudentButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
addStudentDialog dialog = new addStudentDialog(this, true);
dialog.setLocationRelativeTo(this);
dialog.setVisible(true);
if (addStudentDialog.RET_OK == dialog.getReturnStatus()) {
stuModel = new StudentTableModel();
studentTable.setModel(stuModel);
}
}
private void snoQueryTextActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Main().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton addStudentButton;
private javax.swing.JButton deleteStudentButton;
private javax.swing.JRadioButton femaleRadioButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JRadioButton maleRadioButton;
private javax.swing.JButton queryButton;
private javax.swing.JTextField sageText;
private javax.swing.JTextField sdeptText;
private javax.swing.ButtonGroup sexButtonGroup;
private javax.swing.JTextField snameText;
private javax.swing.JTextField snoQueryText;
private javax.swing.JTextField snoText;
private javax.swing.JTable studentTable;
private javax.swing.JButton updateStudentButton;
// End of variables declaration
private StudentTableModel stuModel = new StudentTableModel();
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.stu.ui;
import com.stu.model.Student;
import com.stu.util.DaoFactory;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.ActionMap;
import javax.swing.InputMap;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
public class addStudentDialog extends javax.swing.JDialog {
public static final int RET_OK = 1;
public addStudentDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
// Close the dialog when Esc is pressed
String cancelName = "cancel";
InputMap inputMap = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), cancelName);
ActionMap actionMap = getRootPane().getActionMap();
actionMap.put(cancelName, new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
doClose(RET_CANCEL);
}
});
}
public int getReturnStatus() {
return returnStatus;
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
sexButtonGroup = new javax.swing.ButtonGroup();
okButton = new javax.swing.JButton();
cancelButton = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
snoText = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
maleRadioButton = new javax.swing.JRadioButton();
femaleRadioButton = new javax.swing.JRadioButton();
jLabel3 = new javax.swing.JLabel();
snameText = new javax.swing.JTextField();
jLabel4 = new javax.swing.JLabel();
sageText = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
sdeptText = new javax.swing.JTextField();
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
closeDialog(evt);
}
});
okButton.setText("确定");
okButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
cancelButton.setText("取消");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
jLabel1.setText("学号:");
snoText.setText("jTextField1");
jLabel2.setText("性别:");
sexButtonGroup.add(maleRadioButton);
maleRadioButton.setSelected(true);
maleRadioButton.setText("男");
maleRadioButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
maleRadioButtonActionPerformed(evt);
}
});
sexButtonGroup.add(femaleRadioButton);
femaleRadioButton.setText("女");
jLabel3.setText("姓名:");
snameText.setText("jTextField2");
jLabel4.setText("年龄:");
sageText.setText("jTextField3");
jLabel5.setText("系部:");
sdeptText.setText("jTextField4");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(69, 69, 69)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(maleRadioButton)
.addComponent(okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 150, Short.MAX_VALUE)
.addComponent(cancelButton)
.addGap(81, 81, 81))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(132, 132, 132)
.addComponent(femaleRadioButton))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel3))
.addGap(68, 68, 68)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(snameText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(snoText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(jLabel5))
.addGap(68, 68, 68)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sageText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(sdeptText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cancelButton, okButton});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(25, 25, 25)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(snoText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(11, 11, 11)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(snameText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(maleRadioButton)
.addComponent(femaleRadioButton))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(sageText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(28, 28, 28)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(sdeptText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 50, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cancelButton)
.addComponent(okButton))
.addContainerGap())
);
getRootPane().setDefaultButton(okButton);
pack();
}// </editor-fold>
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {
Student stu = new Student();
String sno = snoText.getText().trim();
String sname = snameText.getText().trim();
String ssex;
if (maleRadioButton.isSelected()) {
ssex = maleRadioButton.getText();
} else {
ssex = femaleRadioButton.getText();
}
String sage = sageText.getText().trim();
String sdept = sdeptText.getText().trim();
if (DaoFactory.getStudentDao().findStudent(sno)) {
JOptionPane.showMessageDialog(this, "指定学号的学生记录已经存在,请重新输入!");
return;
}
stu.setSno(sno);
stu.setSname(sname);
stu.setSsex(ssex);
stu.setSage(Integer.parseInt(sage));
stu.setSdept(sdept);
//如果数据验证正确,则插入学生记录内容
if (!DaoFactory.getStudentDao().insertStudent(stu)) {
JOptionPane.showMessageDialog(this, "学生记录插入失败,请检查输入的数据内容!");
} else {
doClose(RET_OK);
}
}
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {
doClose(RET_CANCEL);
}
/**
* Closes the dialog
*/
private void closeDialog(java.awt.event.WindowEvent evt) {
doClose(RET_CANCEL);
}
private void maleRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void doClose(int retStatus) {
returnStatus = retStatus;
setVisible(false);
dispose();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(addStudentDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(addStudentDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(addStudentDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(addStudentDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
addStudentDialog dialog = new addStudentDialog(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton cancelButton;
private javax.swing.JRadioButton femaleRadioButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JRadioButton maleRadioButton;
private javax.swing.JButton okButton;
private javax.swing.JTextField sageText;
private javax.swing.JTextField sdeptText;
private javax.swing.ButtonGroup sexButtonGroup;
private javax.swing.JTextField snameText;
private javax.swing.JTextField snoText;
// End of variables declaration
private int returnStatus = RET_CANCEL;
}