📄 undergraduatedialog.java
字号:
package GradeManagement.ui;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import GradeManagement.model.Undergraduate;
import GradeManagement.model.CourseGrade;
import GradeManagement.util.SystemConstants;
//学生本科生信息录入及修改对话框
public class UndergraduateDialog extends JDialog implements ActionListener{
private boolean iscanceled = true;
private JButton okButton,cancelButton;
private JTextField idField ; // 学号文本录入框
private JTextField nameField; // 姓名文本录入框
private JTextField scoreField[]; // 成绩文本录入框
private JTextField articleGradeField; // 论文成绩录入框
private JTextField articleTitleField; // 论文标题录入框
public UndergraduateDialog(JFrame owner,String title) {
super(owner,title,true);
setSize(250,280);
centerWindowOnScreen(); //让对话框居中
init();
}//构造方法GraduateDialog结束
public void init() {
okButton = new JButton("确定");
okButton.addActionListener(this);
cancelButton = new JButton("取消");
cancelButton.addActionListener(this);
String[] labelnames = new String[SystemConstants.UNDGRSCOURSES.length + 4];
labelnames[0] = new String("ID");
labelnames[1] = new String("姓名");
for (int i =0; i < SystemConstants.UNDGRSCOURSES.length; i++) {
labelnames[i+2] = new String(SystemConstants.UNDGRSCOURSES[i].getName());
}
labelnames[labelnames.length-2] = new String("论文成绩");
labelnames[labelnames.length-1] = new String("论文标题");
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(SystemConstants.UNDGRSCOURSES.length + 4, 1));
//声明文本输入框
scoreField = new JTextField[SystemConstants.UNDGRSCOURSES.length];
this.idField = new JTextField(" ");
this.nameField = new JTextField(" ");
p2.add(idField);
p2.add(nameField);
scoreField = new JTextField[SystemConstants.UNDGRSCOURSES.length];
for( int i = 0; i < SystemConstants.UNDGRSCOURSES.length; i++) {
scoreField[i] = new JTextField(" ");
p2.add(scoreField[i]);
}
articleGradeField = new JTextField(" ");
articleTitleField = new JTextField(" ");
p2.add(articleGradeField);
p2.add(articleTitleField);
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 Undergraduate getStudent() {
Undergraduate student = new Undergraduate();
student.setId(idField.getText().trim());
student.setName(nameField.getText().trim());
CourseGrade []grades = new CourseGrade[SystemConstants.UNDGRSCOURSES.length];
for (int i = 0; i < SystemConstants.UNDGRSCOURSES.length; i++) {
grades[i] = new CourseGrade(SystemConstants.UNDGRSCOURSES[i].getId(),
convertTextToInt(scoreField[i].getText()));
}
student.setGrades(grades);
student.setGrade(convertTextToInt(articleGradeField.getText()));
student.setArticle(articleTitleField.getText());
return student;
} // 方法getStudent结束
public void display(Undergraduate student) {
this.idField.setText(student.getId());
this.nameField.setText(student.getName());
for (int i = 0; i < SystemConstants.UNDGRSCOURSES.length; i++) {
float temp = (student.getCourseGrade())[i].getGrade();
this.scoreField[i].setText(new Float(temp).toString());
}
this.articleGradeField.setText(Float.toString(student.getGrade()));
this.articleTitleField.setText((student.getArticle()));
} // 方法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 int convertTextToInt(String text) {
int temp;
try{
temp = Integer.parseInt(text.trim());
} catch(NumberFormatException e) {
temp = -1;
}
return temp;
} // 方法convertTextToInt结束
} // 类UndergraduateDialog结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -