您的位置:首页 > 其它

第八次作业,成绩排序。

2017-12-05 11:39 232 查看
package zy;

import java.awt.FlowLayout;

import java.awt.Label;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Iterator;

import java.util.List;

import javax.swing.Box;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JTextArea;

import javax.swing.JTextField;

/**

 * 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,

 * 程序按成绩排序将这些学生的姓名和分数显示在一个文本区中

 * @author Lenovo_PC

 *

 */

public class aa {

    public static void main(String[] args) {

      

        MyJframe myJframe = new MyJframe();

    }

}

class MyJframe extends JFrame implements ActionListener{

    JFrame mJFrame;

    JTextField mJTextField1;

    JTextField mJTextField2;

    JTextArea mJTextArea;

    MyJframe(){

        mJFrame = new JFrame("成绩排序");

        mJFrame.setBounds(200, 100, 900, 600);

        mJFrame.setLayout(new FlowLayout());

        mJTextField1 = new JTextField(10);

        mJTextField2 = new JTextField(10);

        JButton mJButton = new JButton("插入");

        Box mBox = Box.createHorizontalBox();

        mBox.add(new Label("姓名:"));

        mBox.add(mJTextField1);

        mBox.add(Box.createHorizontalStrut(50));

        mBox.add(new Label("分数:"));

        mBox.add(mJTextField2);

        mBox.add(Box.createHorizontalStrut(50));

        mBox.add(mJButton);

        mJFrame.add(mBox);

        mJTextArea = new JTextArea(40,80);

        mJTextArea.setText("自己在上边写数据,点插入\n");

        mJFrame.add(mJTextArea);

        mJFrame.setVisible(true);//使窗口显式出来

        mJButton.addActionListener(this);

    }

    List<Student> list = new ArrayList<Student>();

    @Override

    public void actionPerformed(ActionEvent e) {

    

        mJTextArea.setText("");

        String name = mJTextField1.getText().trim();

        String grade = mJTextField2.getText().trim();

        if(!"".equals(name) && !"".equals(grade)){

            try {

                list.add(new Student(name, Float.parseFloat(grade)));

                mJTextArea.append("当前插入的信息为:姓名:"+name+"    成绩:"+grade+"\n");

            } catch (NumberFormatException e1) {

                // TODO Auto-generated catch block

                e1.printStackTrace();

                mJTextArea.append("不知道成绩是数字格式吗,重新输入!\n");

            }

        }

        Collections.sort(list);//对list排序

        Iterator<Student> iterator = list.iterator();

        Student student;

        while (iterator.hasNext()) {

            student = iterator.next();

            mJTextArea.append("name:"+student.name+"    grade:"+student.grade+"\n");

        }

    }

}

class Student implements Comparable<Student>{

    String name;

    float grade;

    public Student(String name, float grade) {

        super();

        this.name = name;

        this.grade = grade;

    }

    @Override

    public int compareTo(Student o) {

        // TODO Auto-generated method stub

        return (int) (o.grade*10 - this.grade*10);//保证一位小数的情况下比较的准确性

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: