📄 studentmanage.java
字号:
/**
@author Jack Cousteau
@date 2007-12-10
*/
package edu.hit.www;
import java.awt.event.*;
import java.awt.*;
import java.io.IOException;
import java.util.ArrayList;
import javax.swing.*;
public class StudentManage
{
public static void main(String[] args)
{
StudentManageFrame frame = new StudentManageFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
/**
A frame containing a panel for creating a manageFrame
*/
class StudentManageFrame extends JFrame
{
public StudentManageFrame()
{
// set frame title
setTitle("StudentManage");
// get screen dimensions
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
// center frame in screen
setSize(screenWidth / 2, screenHeight / 2);
setLocation(screenWidth / 4, screenHeight / 4);
StudentManagePanel panel = new StudentManagePanel();
add(panel);
pack();
}
}
/**
A panel with two buttons , five labels , five textFields, and one textArea.
*/
class StudentManagePanel extends JPanel
{
public StudentManagePanel()
{
setLayout(new BorderLayout());
buttonPanel = new JPanel();
buttonPanel.setLayout(new BorderLayout());
KeyListener keyEvent1 = new InputKeyHandler();
inputPanel = new JPanel();
inputPanel.setLayout(new GridLayout(1,7,10,10));
inputButton = new JButton("录入");
inputButton.addKeyListener(keyEvent1);
inputButton.setSize(10,50);
inputPanel.add(inputButton);
nameLabel1 = new JLabel("姓名");
nameLabel1.setHorizontalAlignment(JLabel.RIGHT);
inputPanel.add(nameLabel1);
nameField1= new JTextField();
nameField1.addKeyListener(keyEvent1);
inputPanel.add(nameField1);
courseLabel1 = new JLabel("课程名");
courseLabel1.setHorizontalAlignment(JLabel.RIGHT);
inputPanel.add(courseLabel1);
courseField1= new JTextField();
courseField1.addKeyListener(keyEvent1);
inputPanel.add(courseField1);
scoreLabel = new JLabel("分数");
scoreLabel.setHorizontalAlignment(JLabel.RIGHT);
inputPanel.add(scoreLabel);
scoreField= new JTextField();
scoreField.addKeyListener(keyEvent1);
inputPanel.add(scoreField);
buttonPanel.add(inputPanel, BorderLayout.NORTH);
inputButton.addActionListener(new InputListener());
KeyListener keyEvent2 = new SearchKeyHandler();
searchPanel = new JPanel();
searchPanel.setLayout(new GridLayout(1,7,10,10));
searchButton = new JButton("查找");
searchButton.addKeyListener(keyEvent2);
searchPanel.add(searchButton);
nameLabel2 = new JLabel("姓名");
nameLabel2.setHorizontalAlignment(JLabel.RIGHT);
searchPanel.add(nameLabel2);
nameField2= new JTextField();
nameField2.addKeyListener(keyEvent2);
searchPanel.add(nameField2);
courseLabel2 = new JLabel("课程名");
courseLabel2.setHorizontalAlignment(JLabel.RIGHT);
searchPanel.add(courseLabel2);
courseField2= new JTextField();
courseField2.addKeyListener(keyEvent2);
searchPanel.add(courseField2);
blankLabel1 = new JLabel();
searchPanel.add(blankLabel1);
blankLabel2 = new JLabel();
searchPanel.add(blankLabel2);
buttonPanel.add(searchPanel, BorderLayout.SOUTH);
add(buttonPanel, BorderLayout.NORTH);
searchButton.addActionListener(new SearchListener());
JPanel displayPanel = new JPanel();
JLabel blankLabel = new JLabel(" ");
displayPanel.setLayout(new BorderLayout());
contentArea = new JTextArea(" 姓名 课程名 得分\n", 20, 40);
contentArea.setEditable(false);
contentArea.setLineWrap(true);
scrollPane1 = new JScrollPane(contentArea);
contentArea.append("************************************************************\n");
displayPanel.add(scrollPane1, BorderLayout.CENTER);
displayPanel.add(blankLabel, BorderLayout.WEST);
add(displayPanel, BorderLayout.CENTER);
}
/*
*Add a ActionListener to input button.
*/
private class InputListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
try
{
studentName1 = nameField1.getText();
courseName1 = courseField1.getText();
int flag = 0;
if(scoreField.getText().equals(""))
{
}
else
{
score = Double.parseDouble(scoreField.getText());
}
if(studentName1.equals("")||courseName1.equals("")||scoreField.getText().equals(""))
{
throw new NullPointerException();
}
else if(score>100||score<0)
{
throw new Throwable();
}
else
{
for(Student s:students)
{
if(studentName1.equals(s.getStudentName()))
{
if(courseName1.equalsIgnoreCase(s.getCourseName()))
{
flag = 1;
JOptionPane.showMessageDialog(null,"已存在信息,这位同学的该课程成绩已存在.");
}
}
}
if(flag == 0)
{
students.add(new Student(studentName1, courseName1, score));
}
}
}
catch(NullPointerException e)
{
JOptionPane.showMessageDialog(null,"请输入完整的信息(姓名+课程名+分数).");
}
catch(Throwable e)
{
JOptionPane.showMessageDialog(null,"请重新输入分数在0-100范围内.");
}
nameField1.setText("");
courseField1.setText("");
scoreField.setText("");
}
}
/*
*Add a KeyListener to input button and three textFields.
*/
private class InputKeyHandler implements KeyListener
{
public void keyPressed(KeyEvent event)
{
}
public void keyReleased(KeyEvent event)
{
}
public void keyTyped(KeyEvent event)
{
if(event.getKeyChar() == '\n')
{
try
{
studentName1 = nameField1.getText();
courseName1 = courseField1.getText();
int flag = 0;
if(scoreField.getText().equals(""))
{
}
else
{
score = Double.parseDouble(scoreField.getText());
}
if(studentName1.equals("")||courseName1.equals("")||scoreField.getText().equals(""))
{
JOptionPane.showMessageDialog(null,"请输入完整的信息(姓名+课程名+分数).");
}
else if(score>100||score<0)
{
JOptionPane.showMessageDialog(null,"请重新输入分数在0-100范围内.");
}
else
{
for(Student s:students)
{
if(studentName1.equals(s.getStudentName()))
{
if(courseName1.equalsIgnoreCase(s.getCourseName()))
{
flag = 1;
JOptionPane.showMessageDialog(null,"已存在信息,这位同学的该课程成绩已存在.");
}
}
}
if(flag == 0)
{
students.add(new Student(studentName1, courseName1, score));
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
catch(Throwable e)
{
JOptionPane.showMessageDialog(null, e.getClass().getName());
}
nameField1.setText("");
courseField1.setText("");
scoreField.setText("");
nameField1.requestFocus();
}
}
}
/*
*Add a ActionListener to search button.
*/
private class SearchListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
studentName2 = nameField2.getText();
courseName2 = courseField2.getText();
int flag = 0;
try
{
for(Student s:students)
{
if(studentName2.equals(s.getStudentName())&&courseName2.equals(""))
{
s.print();
flag = 1;
}
else if(courseName2.equalsIgnoreCase(s.getCourseName())&&studentName2.equals(""))
{
s.print();
flag = 1;
}
else if(studentName2.equals(s.getStudentName())&&courseName2.equalsIgnoreCase(s.getCourseName()))
{
s.print();
flag = 1;
}
}
if(flag == 0)
{
JOptionPane.showMessageDialog(null,"请输入正确的查找信息.");
}
else
{
contentArea.append("************************************************************\n");
}
}
catch(Exception e)
{
e.printStackTrace();
}
nameField2.setText("");
courseField2.setText("");
}
}
/*
*Add a KeyListener to search button and three textFields.
*/
private class SearchKeyHandler implements KeyListener
{
public void keyPressed(KeyEvent event)
{
}
public void keyReleased(KeyEvent event)
{
}
public void keyTyped(KeyEvent event)
{
if(event.getKeyChar() == '\n')
{
studentName2 = nameField2.getText();
courseName2 = courseField2.getText();
int flag = 0;
try
{
for(Student s:students)
{
if(studentName2.equals(s.getStudentName())&&courseName2.equals(""))
{
s.print();
flag = 1;
}
else if(courseName2.equalsIgnoreCase(s.getCourseName())&&studentName2.equals(""))
{
s.print();
flag = 1;
}
else if(studentName2.equals(s.getStudentName())&&courseName2.equalsIgnoreCase(s.getCourseName()))
{
s.print();
flag = 1;
}
}
if(flag == 0)
{
throw new IOException();
}
else
{
contentArea.append("************************************************************\n");
}
}
catch(IOException e)
{
JOptionPane.showMessageDialog(null,"请输入正确的查找信息.");
}
nameField2.setText("");
courseField2.setText("");
nameField2.requestFocus();
}
}
}
/*
*A private class Student for create student object.
*/
private class Student
{
public Student(String sName, String cName, double score)
{
studentName = sName;
courseName = cName;
courseScore = score;
}
public String getStudentName()
{
return studentName;
}
public String getCourseName()
{
return courseName;
}
public double getScore()
{
return courseScore;
}
public void setCourseName(String cName)
{
courseName = cName;
}
public void setScore(double s)
{
courseScore = s;
}
public void setStudentName(String sName)
{
studentName = sName;
}
public void print()
{
String space = " ";
contentArea.append(" "+studentName+space.substring(0, 33-studentName.length())+courseName+space.substring(0, 32-courseName.length())+courseScore+"\n");
}
private String studentName;
private String courseName;
private double courseScore;
}
private JPanel buttonPanel;
private JPanel inputPanel;
private JPanel searchPanel;
private JScrollPane scrollPane1;
private JButton inputButton;
private JButton searchButton;
private JLabel nameLabel1;
private JLabel nameLabel2;
private JLabel courseLabel1;
private JLabel courseLabel2;
private JLabel scoreLabel;
private JLabel blankLabel1;
private JLabel blankLabel2;
private JTextField nameField1;
private JTextField nameField2;
private JTextField courseField1;
private JTextField courseField2;
private JTextField scoreField;
private JTextArea contentArea;
private ArrayList<Student> students = new ArrayList<Student>();
private String studentName1;
private String courseName1;
private double score;
private String studentName2;
private String courseName2;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -