lesson 9:编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。

题目:

编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。

代码:

package input;
import java.util.*;
import java.util.List;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Again extends JFrame implements ActionListener{
	
	JLabel label1,label2,label3;
	JButton jb;
	JTextField c,d;
	JTextArea jtextarea;
	JScrollPane scroll;
	Map<String, Integer> map;
	
	 List<Student> list = new ArrayList<Student>();
	Again()
	{ 	//shilihua
	 map=new HashMap<String,Integer>();
	 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭模式
     label1 = new JLabel("姓名:");//标签实例化
     label2 = new JLabel("成绩:");
     label3 = new JLabel("结果:");//标签实例化
     jb=new JButton("提交");
     
     c=new JTextField(10);
     d=new JTextField(10);
     jtextarea = new JTextArea(14,14);
     scroll=new JScrollPane(jtextarea);//设置窗格为流式
     setLayout(new FlowLayout());
     add(label1);
     add(c);
     add(label2);
     add(d);
     add(jb); 
     add(label3);
     add(scroll);//将滚动窗格加入窗孔
     
     setBounds(1060,100,200,388);//设置位置/大小
     setVisible(true); 
     jb.addActionListener(this);//事件源添加监听器(事件监听器实例);窗体自身类作为事件监听器

		
	}
	
	
	public static void main(String[] args) {
		
		  new Again();
	}

	//事件处理器的处理函数不是自己所写//包括泛型与比较函数
	@Override
	public void actionPerformed(ActionEvent e) {
		
			jtextarea.setText("");
			
	        String name = c.getText();
	        String grade = d.getText();
	        c.setText(null);
			d.setText(null);
	        if (!"".equals(name) && !"".equals(grade)) {
	            list.add(new Student(name, Float.parseFloat(grade)));
	           // jtextarea.append("姓名:" + name + "    成绩:" + grade + "\n");
	        }
	        Collections.sort(list);// 对list排序
	        Iterator<Student> iterator = list.iterator();
	        Student student;
	        while (iterator.hasNext()) {
	            student = iterator.next();
	            jtextarea.append("姓名:" + student.name + "  成绩:" + student.grade + "\n");
	        }
	       // String name1 = c.getText();
            //String g = d.getText();
            //Integer b=Integer.valueOf(g);
            //map.put(name1,b);
	    }
		
		
		
		
		//Set value=map.entrySet();
		//Collection value=map.values();
		//Iterator it= value.iterator();
		//while(it.hasNext())
		//{	Object value1=it.next();
			//jtextarea.setText((String) value1);
		//}
		//排序问题未实现
		
		
	}



package input;

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 - this.grade);
    }

}

结果:


猜你喜欢

转载自blog.csdn.net/wfcy023315/article/details/78729240