编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
public class Student extends JFrame{
public static void main(String[] args) {
new Student();
}
JLabel lName,lScore;
JTextField tName,tScore;
JButton button;
MyListener Al;
Map<String, String> map;
JTextArea textArea = new JTextArea(5,25);
Student(){
init();
button.addActionListener(Al);;
}
void init(){
Container con=getContentPane();
JPanel panel=new JPanel();
lName=new JLabel("姓名");
lScore=new JLabel("成绩");
button=new JButton("确定");
tName=new JTextField(10);
tScore=new JTextField(10);
panel.add(lName);
panel.add(tName);
panel.add(lScore);
panel.add(tScore);
panel.add(button);
con.add(panel, BorderLayout.NORTH);
JScrollPane scrollPane = new JScrollPane(textArea);
con.add(scrollPane,BorderLayout.CENTER);
setVisible(true);
setTitle("统计学生姓名和分数");
setSize(400, 300);
validate();
Al=new MyListener();
map=new HashMap<String, String>();
//map2=new HashMap<String, String>();
}
private class MyListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
map.put(tScore.getText(), tName.getText());
tName.setText("");
tScore.setText("");
ArrayList<String> list=new ArrayList<String>();
Set<String> keyset=map.keySet();
Iterator<String> it=keyset.iterator();
while(it.hasNext()){
String key=it.next();
list.add(key);
}
Collections.sort(list,new MyComparator());
Iterator<String> itr=list.iterator();
textArea.setText("");
while(itr.hasNext()){
String key=itr.next();
String value=map.get(key);
textArea.append("姓名:"+value+"\t成绩:"+key+"\n");
}
}
}
class MyComparator implements Comparator<String>{
@Override
public int compare(String id1, String id2) {
return id1.compareTo(id2);
}
}
}
运行图: