importjava.awt.BorderLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.HashMap;importjava.util.Iterator;importjava.util.LinkedHashMap;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextArea;importjavax.swing.JTextField;public class Student extendsJFrame {
JLabel lName,lScore;
JTextField tName,tScore;
JTextArea taShow;
JButton bSubmit;
JPanel pan;
MapstudentMap,resultMap;public static voidmain(String[] args) {newStudent();
}publicStudent() {
init();
click();
}public voidinit() {
lName=new JLabel("姓名");
lScore=new JLabel("成绩");
tName=new JTextField(10);
tScore=new JTextField(10);
bSubmit=new JButton("确定");
pan=newJPanel();
taShow=newJTextArea();
pan.add(lName);
pan.add(tName);
pan.add(lScore);
pan.add(tScore);
pan.add(bSubmit);
add(pan,BorderLayout.NORTH);
add(taShow, BorderLayout.CENTER);
setTitle("学生成绩排序");
setSize(400, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
validate();
studentMap=new HashMap();
}private voidclick() {
bSubmit.addActionListener(newActionListener() {public voidactionPerformed(ActionEvent e) {
save();
showMap();
}
});
}private voidsave() {
studentMap.put(tName.getText(),tScore.getText());
resultMap=sortMapByValue(studentMap);
tName.setText("");
tScore.setText("");
}public static Map sortMapByValue(Mapmap) {if (map == null ||map.isEmpty()) {return null;
}
Map sortedMap = new LinkedHashMap();
List> entryList = new ArrayList>(map.entrySet());
Collections.sort(entryList,newMapValueComparator());
Iterator> iter =entryList.iterator();
Map.Entry tmpEntry = null;while(iter.hasNext()) {
tmpEntry=iter.next();
sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());
}returnsortedMap;
}private voidshowMap() {
taShow.setText("");for(Map.Entryentry:resultMap.entrySet()) {
taShow.append("姓名:"+entry.getKey()+" 成绩:"+entry.getValue()+"\n");
}
}
}class MapValueComparator implements Comparator>{public int compare(Entry s1, Entrys2) {returns1.getValue().compareTo(s2.getValue());
}
}