⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentmanage.java

📁 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 + -