📄 stumanagement.java
字号:
package stumanagement;
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.JList;
import javax.swing.JButton;
import java.awt.GridLayout;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.*;
import java.util.*;
import java.awt.*;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseAdapter;
import java.io.*;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class StuManagement extends JFrame {
JPanel contentPane;
JScrollPane jScrollPane1 = new JScrollPane();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JList StuList = new JList();
JButton NewBtn = new JButton();
JButton DelBtn = new JButton();
JButton AvgBtn = new JButton();
JButton StatBtn = new JButton();
JButton SortBtn = new JButton();
JButton SearchBtn = new JButton();
GridLayout gridLayout1 = new GridLayout();
JPanel jPanel3 = new JPanel();
JPanel jPanel4 = new JPanel();
JLabel jLabel1 = new JLabel();
BorderLayout borderLayout1 = new BorderLayout();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JTextField StuNum = new JTextField();
JTextField StuName = new JTextField();
JTextField StuScore = new JTextField();
GridLayout gridLayout2 = new GridLayout();
BorderLayout borderLayout2 = new BorderLayout();
Collection stuCollect = new ArrayList();
String strNum;
String strName;
double intScore;
public int []levelNum = new int[4];
public StuManagement() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
open();
} catch (Exception exception) {
exception.printStackTrace();
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(450, 360));
setTitle("学生信息管理");
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int x = (screenSize.width - 450)/2;
int y = (screenSize.height - 400)/2;
setLocation(x, y);
jScrollPane1.setBorder(BorderFactory.createRaisedBevelBorder());
jScrollPane1.setPreferredSize(new Dimension(260, 32));
jScrollPane1.setBounds(new Rectangle(2, 1, 180, 272));
jPanel1.setBorder(BorderFactory.createRaisedBevelBorder());
jPanel1.setBounds(new Rectangle(182, 0, 218, 273));
jPanel1.setLayout(borderLayout2);
jPanel2.setBorder(BorderFactory.createRaisedBevelBorder());
jPanel2.setBounds(new Rectangle(0, 273, 400, 27));
jPanel2.setLayout(gridLayout1);
NewBtn.setText("新增");
NewBtn.addActionListener(new StuManagement_NewBtn_actionAdapter(this));
DelBtn.setText("删除");
DelBtn.addActionListener(new StuManagement_DelBtn_actionAdapter(this));
AvgBtn.setMargin(new Insets(2, 2, 2, 2));
AvgBtn.setText("平均成绩");
AvgBtn.addActionListener(new StuManagement_AvgBtn_actionAdapter(this));
StatBtn.setText("统计");
StatBtn.addActionListener(new StuManagement_StatBtn_actionAdapter(this));
SortBtn.setText("排序");
SortBtn.addActionListener(new StuManagement_SortBtn_actionAdapter(this));
SearchBtn.setText("查找");
SearchBtn.addActionListener(new StuManagement_SearchBtn_actionAdapter(this));
jPanel3.setBorder(BorderFactory.createRaisedBevelBorder());
jPanel3.setLayout(borderLayout1);
jPanel4.setBorder(BorderFactory.createRaisedBevelBorder());
jPanel4.setLayout(gridLayout2);
jLabel1.setText("请输入学生基本信息 :");
jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
jLabel2.setText("学号:");
jLabel3.setHorizontalAlignment(SwingConstants.CENTER);
jLabel3.setText("姓名:");
jLabel4.setHorizontalAlignment(SwingConstants.CENTER);
jLabel4.setText("成绩:");
gridLayout2.setColumns(2);
gridLayout2.setHgap(2);
gridLayout2.setRows(3);
gridLayout2.setVgap(3);
StuList.setPreferredSize(new Dimension(0, 1));
StuList.addMouseListener(new StuManagement_StuList_mouseAdapter(this));
gridLayout1.setHgap(2);
jPanel4.add(jLabel2);
jPanel4.add(StuNum);
jPanel4.add(jLabel3);
jPanel4.add(StuName);
jPanel4.add(jLabel4);
jPanel4.add(StuScore);
jPanel2.add(NewBtn);
jPanel2.add(DelBtn);
jPanel2.add(AvgBtn);
jPanel2.add(StatBtn);
jPanel2.add(SearchBtn);
jPanel2.add(SortBtn);
jPanel1.add(jPanel3, java.awt.BorderLayout.NORTH);
jPanel3.add(jLabel1, java.awt.BorderLayout.NORTH);
jPanel1.add(jPanel4, java.awt.BorderLayout.CENTER);
contentPane.add(jScrollPane1, null);
jScrollPane1.getViewport().add(StuList);
contentPane.add(jPanel1, null);
contentPane.add(jPanel2, null);
}
public static void main(String[] args) {
new StuManagement().setVisible(true);
}
public void NewBtn_actionPerformed(ActionEvent e) {
add();
save();
}
public void add()
{
this.strNum = StuNum.getText();
this.strName = StuName.getText();
this.intScore = Double.parseDouble(StuScore.getText());
Iterator it = stuCollect.iterator();
Student stu;
boolean search = false;
while(it.hasNext())
{
stu = (Student)it.next();
if(stu.getNum().equals(this.strNum))
{
this.StuNum.setText(stu.getNum());
this.StuName.setText(stu.getName());
this.StuScore.setText(String.valueOf(stu.getScore()));
search = true;
}
}
if(!search)
{
stuCollect.add(new Student(strNum, strName, intScore));
updateStuList();
}
else
{
JOptionPane.showMessageDialog(this, "对不起,此学号已经存在了");
}
this.StuNum.setText("");
this.StuName.setText("");
this.StuScore.setText("");
}
public void updateStuList()
{
StuList.setListData(stuCollect.toArray());
}
public void DelBtn_actionPerformed(ActionEvent e) {
del();
save();
}
public void del()
{
String num = StuNum.getText();
Iterator it = stuCollect.iterator();
Student stu;
while(it.hasNext()) {
stu = (Student)(it.next());
if(stu.getNum().equals(StuNum.getText()))
{
stuCollect.remove(stu);
updateStuList();
StuNum.setText("");
StuName.setText("");
StuScore.setText("");
}
}
}
public void StuList_mouseClicked(MouseEvent e) {
Student stu = (Student)(StuList.getSelectedValue());
StuNum.setText(stu.getNum());
StuName.setText(stu.getName());
StuScore.setText(String.valueOf(stu.getScore()));
}
public void AvgBtn_actionPerformed(ActionEvent e) {
avg();
}
public void avg()
{
double sum = 0;
int count = 0;
Iterator it = stuCollect.iterator();
Student stu;
while(it.hasNext())
{
count++;
stu = (Student)it.next();
sum += stu.getScore();
}
double avg = sum / count;
JOptionPane.showMessageDialog(this, new String("平均分 : " + avg));
}
public void SearchBtn_actionPerformed(ActionEvent e) {
String num = JOptionPane.showInputDialog("请输入你的学号: ");
Iterator it = stuCollect.iterator();
boolean search = false;
Student stu;
while(it.hasNext())
{
stu = (Student)it.next();
if(stu.getNum().equals(num))
{
this.StuNum.setText(stu.getNum());
this.StuName.setText(stu.getName());
this.StuScore.setText(String.valueOf(stu.getScore()));
search = true;
}
}
if(!search)
JOptionPane.showMessageDialog(this, "对不起,没有找到此人,请重新输入!");
}
public void SortBtn_actionPerformed(ActionEvent e) {
sort();
}
public void sort()
{
Iterator it = stuCollect.iterator();
Student stu;
int i = 0;
int []num = new int[stuCollect.size()];
while(it.hasNext())
{
stu = (Student)it.next();
num[i] = Integer.parseInt(stu.getNum());
i++;
}
Arrays.sort(num);
Collection cTemp = new ArrayList();
for(int j = 0; j < i; j++)
{
it = stuCollect.iterator();
while(it.hasNext())
{
stu = (Student)it.next();
if(stu.getNum().equals(String.valueOf(num[j])))
cTemp.add(stu);
}
}
stuCollect = cTemp;
updateStuList();
}
public void StatBtn_actionPerformed(ActionEvent e) {
stat();
new Stat(this).setVisible(true);
}
public void stat()
{
for(int i = 0; i < 4; i++)
levelNum[i] = 0;
Iterator it = stuCollect.iterator();
Student stu;
while(it.hasNext())
{
stu = (Student)(it.next());
if(stu.getScore() >= 0.0 && stu.getScore() <60.0)
levelNum[0]++;
else if(stu.getScore() >= 60.0 && stu.getScore() <75.0)
levelNum[1]++;
else if(stu.getScore() >= 75.0 && stu.getScore() <90.0)
levelNum[2]++;
else
levelNum[3]++;
}
/* for(int i = 0; i < 4; i++)
{
JOptionPane.showMessageDialog(this, String.valueOf(levelNum[i]));
}*/
}
public void save()
{
int count = 0;
try {
FileOutputStream fos = new FileOutputStream("addressBook.ab");
ObjectOutputStream oos = new ObjectOutputStream(fos);
Iterator it = stuCollect.iterator();
while(it.hasNext()) {
oos.writeObject(it.next());
count++;
}
oos.close();
FileOutputStream temp = new FileOutputStream("num.ab");
temp.write(count);
temp.close();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void open()
{
try {
FileInputStream temp = new FileInputStream("num.ab");
int count = temp.read();
FileInputStream fis = new FileInputStream("addressBook.ab");
ObjectInputStream ois = new ObjectInputStream(fis);
Student stu;
for(int i = 0; i < count; i++) {
stu = (Student)ois.readObject();
stuCollect.add(stu);
}
updateStuList();
}
catch(Exception e) {
e.printStackTrace();
}
}
}
class StuManagement_SearchBtn_actionAdapter implements ActionListener {
private StuManagement adaptee;
StuManagement_SearchBtn_actionAdapter(StuManagement adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.SearchBtn_actionPerformed(e);
}
}
class StuManagement_SortBtn_actionAdapter implements ActionListener {
private StuManagement adaptee;
StuManagement_SortBtn_actionAdapter(StuManagement adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.SortBtn_actionPerformed(e);
}
}
class StuManagement_StatBtn_actionAdapter implements ActionListener {
private StuManagement adaptee;
StuManagement_StatBtn_actionAdapter(StuManagement adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.StatBtn_actionPerformed(e);
}
}
class StuManagement_StuList_mouseAdapter extends MouseAdapter {
private StuManagement adaptee;
StuManagement_StuList_mouseAdapter(StuManagement adaptee) {
this.adaptee = adaptee;
}
public void mouseClicked(MouseEvent e) {
adaptee.StuList_mouseClicked(e);
}
}
class StuManagement_AvgBtn_actionAdapter implements ActionListener {
private StuManagement adaptee;
StuManagement_AvgBtn_actionAdapter(StuManagement adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.AvgBtn_actionPerformed(e);
}
}
class StuManagement_DelBtn_actionAdapter implements ActionListener {
private StuManagement adaptee;
StuManagement_DelBtn_actionAdapter(StuManagement adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.DelBtn_actionPerformed(e);
}
}
class StuManagement_NewBtn_actionAdapter implements ActionListener {
private StuManagement adaptee;
StuManagement_NewBtn_actionAdapter(StuManagement adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.NewBtn_actionPerformed(e);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -