📄 collegestudentdialog.java
字号:
package GradeManagement.ui;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import GradeManagement.model.CollegeStudent;
import GradeManagement.model.CourseGrade;
import GradeManagement.util.SystemConstants;
// 学生信息录入或修改模块
public class CollegeStudentDialog extends JDialog implements ActionListener{
private boolean iscanceled = true; // 用户单击取消按钮
private JButton okButton, cancelButton;
private JTextField idField ; // 学号文本录入框
private JTextField nameField; // 姓名文本录入框
private JTextField scoreField[]; // 成绩文本录入框
public CollegeStudentDialog(JFrame owner,String title) {
super(owner,title,true);
setSize(250,280);
centerWindowOnScreen(); // 让对话框居中
init();
}
private void init() {
okButton = new JButton("确定");
okButton.addActionListener(this);
cancelButton = new JButton("取消");
cancelButton.addActionListener(this);
iscanceled = true;
String[] labelnames = new String[SystemConstants.COLSCOURSES.length + 2];
labelnames[0] = new String("ID");
labelnames[1] = new String("姓名");
for (int i =0; i < SystemConstants.COLSCOURSES.length; i++) {
labelnames[i+2] = new String(SystemConstants.COLSCOURSES[i].getName());
}
Panel p1 = new Panel();
p1.setLayout( new GridLayout(labelnames.length , 1));
for(int i = 0 ; i < labelnames.length ; i++) {
p1.add( new JLabel(labelnames[i]));
}
// 声明文本输入框容器
Panel p2 = new Panel();
p2.setLayout( new GridLayout(labelnames.length , 1));
this.idField = new JTextField(" "); // 声明录入ID文本框
this.nameField = new JTextField(" "); // 声明录入姓名文本框
p2.add(idField);
p2.add(nameField);
scoreField = new JTextField[SystemConstants.COLSCOURSES.length];
for( int i = 0; i < SystemConstants.COLSCOURSES.length; i++) {
scoreField[i] = new JTextField(" ");
p2.add(scoreField[i]);
}
Panel p3 = new Panel();
p3.add( okButton );
p3.add( cancelButton );
Panel p4 = new Panel();
p4.setLayout( new GridLayout( 1, 2));
p4.add(p1);
p4.add(p2);
Container contentPane=getContentPane();//获得浏览器提供的顶层容器的内容面板
contentPane.setLayout(new BorderLayout());
contentPane.add(p4,"Center");
contentPane.add(p3,"South");
} // 方法结束
public boolean isCanceled() {
return this.iscanceled;
}
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if(source == okButton) {
this.iscanceled = false;
//检查学号
if(idField.getText() == null || idField.getText().trim().length() == 0) {
JOptionPane.showMessageDialog(null,"学号不能为空,重新输入",
"学号有错",JOptionPane.ERROR_MESSAGE);
return;
}
setVisible(false);
} else if(source == cancelButton) {
this.iscanceled = true;
setVisible(false);
}
} // 方法actionPerformed结束
public CollegeStudent getStudent() {
CollegeStudent student = new CollegeStudent();
System.out.println(idField.getText());
student.setId(idField.getText().trim());
student.setName(nameField.getText().trim());
CourseGrade []grades = new CourseGrade[SystemConstants.COLSCOURSES.length];
for (int i = 0; i < SystemConstants.COLSCOURSES.length; i++) {
grades[i] = new CourseGrade(SystemConstants.COLSCOURSES[i].getId(),
convertTextToInt(scoreField[i].getText()));
}
student.setGrades(grades);
return student;
}//方法getStudent结束
public void display(CollegeStudent student) {
this.idField.setText(student.getId());
this.nameField.setText(student.getName());
for (int i = 0; i < SystemConstants.COLSCOURSES.length; i++) {
float temp = (student.getCourseGrade())[i].getGrade();
this.scoreField[i].setText(new Float(temp).toString());
}
} // 方法display结束
private void centerWindowOnScreen() {
Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
int width = getSize().width;
int height = getSize().height;
int x = (screenDimension.width - width) / 2 ;
int y = (screenDimension.height - height) / 2 ;
setBounds(x, y, width, height);
} // 方法centerWindowOnScreen结束
private float convertTextToInt(String text) {
float temp;
try{
temp = Float.parseFloat(text.trim());
} catch(NumberFormatException e) {
temp = -1;
}
return temp;
} // 方法convertTextToInt结束
} // 类CollegeStudentDialog结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -