泛式——学生成绩排序

来源:互联网 发布:python解析xml文件 编辑:程序博客网 时间:2024/04/29 16:57

编写一个应用程序,

用户分别从两个文本框输入学术的姓名和分数,

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

public  class Student implements Comparable<Student> {String name;double grade;public Student(String name,double grade) {this.name=name;this.grade=grade;}@Overridepublic int compareTo(Student s) {// TODO Auto-generated method stubif(s.grade>this.grade)return 1;if(s.grade==this.grade)return 0;else return -1;}}

import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Iterator;import javax.swing.*;public class GradeSort extends JFrame implements ActionListener{public static void main(String[] args) {// TODO Auto-generated method stubGradeSort gsWin=new GradeSort();}Container contentPane;JPanel panel;JLabel lname,lgrade;JTextField  tfname,tfgrade;JButton submit;JTextArea area;ArrayList<Student> list=new ArrayList<Student>();public GradeSort() {init();setTitle("学生成绩排序");//设置窗口标题setLocation(30,30);//设置窗口位置setSize(600,600);//设置窗口大小setVisible(true);//设置窗口是否可见setDefaultCloseOperation(DISPOSE_ON_CLOSE);//设置关闭图标如何处理}void init() {//设置容器contentPane=getContentPane();//设置JPanel panel面板panel=new JPanel();//设置FlowLayout布局FlowLayout flow=new FlowLayout();panel.setLayout(flow);contentPane.add(panel,BorderLayout.NORTH);Box box=Box.createHorizontalBox();lname=new JLabel("姓名");lgrade=new JLabel("成绩");tfname=new JTextField(10);tfgrade=new JTextField(10);submit=new JButton("确定");box.add(lname);box.add(tfname);box.add(lgrade);box.add(tfgrade);box.add(submit);panel.add(box);//设置文本区area=new JTextArea();JScrollPane pane=new JScrollPane(area);contentPane.add(pane,BorderLayout.CENTER);submit.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubarea.setText("");String name=tfname.getText();double grade=Double.parseDouble(tfgrade.getText());if(name.length()>0) {Student student=new Student(name,grade);if(e.getSource()==submit){area.append("姓名:"+tfname.getText()+"      成绩:"+tfgrade.getText()+"\n");list.add(student);}area.append("排序后:"+"\n");Collections.sort(list);Iterator<Student> it=list.iterator();while(it.hasNext()) {Student stu=it.next();area.append("姓名:"+tfname.getText()+"      成绩:"+tfgrade.getText()+"\n");}}}});}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub}}