第14周—Java集合框架(第2题)

来源:互联网 发布:js显示当前时间年月日 编辑:程序博客网 时间:2024/06/03 18:18
编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。import java.awt.BorderLayout;  import java.awt.event.ActionEvent;  import java.awt.event.ActionListener;  import java.util.ArrayList;  import java.util.Collections;  import java.util.Comparator;  import java.util.HashMap;  import java.util.Iterator;  import java.util.LinkedHashMap;  import java.util.List;  import java.util.Map;  import java.util.Map.Entry;  import javax.swing.JButton;  import javax.swing.JFrame;  import javax.swing.JLabel;  import javax.swing.JPanel;  import javax.swing.JTextArea;  import javax.swing.JTextField;  /*编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。*/public class Student extends JFrame{    JTextField text1,text2;    JButton button;    JTextArea area;    JPanel pan;    JLabel name1,name2;    Map<String,String> studentMap,resultMap;    public static void main(String[] args) {        new Student();    }    public  Student(){           init();              click();     }    private void init() {            name1=new JLabel("姓名");            name2=new JLabel("成绩");            text1=new JTextField(10);            text2=new JTextField(10);            button=new JButton("确定");            pan=new JPanel();            area=new JTextArea();            pan.add(name1);            pan.add(text1);            pan.add(name2);            pan.add(text2);            pan.add(button);            add(pan,BorderLayout.NORTH);                 add(area, BorderLayout.CENTER);             setTitle("学生成绩排序");                     setSize(400, 300);              setVisible(true);              setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);             validate();              studentMap=new HashMap<String,String>();          }      private void click() {              button.addActionListener(new ActionListener() {                         public void actionPerformed(ActionEvent e) {                      save();                      showMap();                 }                });            }        private void save() {              studentMap.put(text1.getText(),text2.getText());              resultMap = sortMapByValue(studentMap);            name1.setText("");                     name2.setText("");          }          public static Map<String, String> sortMapByValue(Map<String, String> map) {              if (map == null || map.isEmpty()) {                  return null;              }              Map<String, String> sortedMap = new LinkedHashMap<String, String>();              List<Map.Entry<String, String>> entryList = new ArrayList<Map.Entry<String, String>>(map.entrySet());   //将元素存入List中,类型为entry              Collections.sort(entryList, new MapValueComparator());              Iterator<Map.Entry<String, String>> iter = entryList.iterator();              Map.Entry<String, String> tmpEntry = null;              while (iter.hasNext()) {                  tmpEntry = iter.next();                  sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());               }              return sortedMap;          }          private void showMap() {              area.setText("");              for(Map.Entry<String,String> entry:resultMap.entrySet()) {                     area.append("姓名:"+entry.getKey()+"   成绩:"+entry.getValue()+"\n");              }                 }         }  class MapValueComparator implements Comparator<Map.Entry<String, String>> {      public int compare(Entry<String, String> s1, Entry<String, String> s2) {          return s1.getValue().compareTo(s2.getValue());      }  }

这里写图片描述

阅读全文
0 0
原创粉丝点击