您的位置:首页 > 其它

泛式——学生成绩排序

2017-12-05 19:07 218 查看
编写一个应用程序,

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

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

public class Student implements Comparable<Student> {
String name;
double grade;
public Student(String name,double grade) {
this.name=name;
this.grade=grade;
}
@Override
public int compareTo(Student s) {
// TODO Auto-generated method stub
if(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 stub
GradeSort 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 stub
area.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");
}
}
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

}

}


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