2 编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
2017-12-07 10:26
1171 查看
2 编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
运行结果:
package 学生成绩排序; 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 { JLabel lname,lscore;//姓名和成绩标签 JTextField tname,tscore; //文本框 JTextArea show; //用于显示的文本区域 JButton button; JPanel pan; Map<String,String> studentMap,resultMap; public static void main(String[] args) { new Student(); } public Student() { initialize();//初始化 click();//点击 } public void initialize() { lname=new JLabel("姓名"); lscore=new JLabel("成绩"); tname =new JTextField(10); tscore=new JTextField(10); button=new JButton("确定"); pan=new JPanel(); show=new JTextArea(); pan.add(lname); pan.add(tname); pan.add(lscore); pan.add(tscore); pan.add(button); add(pan, BorderLayout.NORTH); add(show,BorderLayout.CENTER); setTitle("统计学生姓名和分数:");//设置窗口基础属性 setSize(400, 300); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); validate(); studentMap= new HashMap<String,String>(); } //点击按钮 public void click() { button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { save(); ShowMap(); } }); } //保存方法 private void save() { studentMap.put(tname.getText(),tscore.getText()); resultMap = sortMapByValue(studentMap); //按Value进行排序 tname.setText(""); //文本框内容清空 tscore.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()); //将List中的元素遍历出来存入map } return sortedMap; } //展示列表 private vo 4000 id ShowMap() { show.setText(""); for(Map.Entry<String,String> entry:resultMap.entrySet()) { show.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()); } }
运行结果:
相关文章推荐
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- lesson 9:编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- Java集合框架上机练习题(泛型、JFrame)用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 4.设计一个Email邮箱注册应用程序。要求:用户输入完成单击“立即注册”按,判断“密码”和“确认密码”文本框内容是否一致,如果一致在立即注册按钮上方显示用户输入的邮件地址,运行结果如图所示。
- 编写一个学生和教师数据输入和显示程序,学生数据有编号,姓名,班号,和成绩,教师数据有编号,姓名,职称和部门。要求将编号,姓名输入显示设计成一个类person,并作为学生数据类t和教师数据操作类的基类
- 1, 编写程序,当用户在文本框中输入内容之后,单机不同的按钮,能够把文半框中的内容粘贴到文本区中。“重置”按钮实现将文本框和文本区中的内容清空。界面上的文本区只能显示内容,不能让用户输入文本。运行结果
- 实现一个简单的菜单程序,运行时显示"Menu:A(dd) D(elete) S(ort) Q(uit),Select one: "提示用户输入。输入A、D、S时分别提示"数据已经增加、删除、排序"
- 编写一个程序,要求用户输入最多10个高尔夫成绩,并将其存储在一个数组中。 程序允许用户提早结束输入,并在一行上显示所有成绩,然后报告平均成绩。 请使用3个数组处理函数来分别进行输入、显示和计算
- [5.18]编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号、和成绩,教师数据有编号 姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类stud
- 编写一个程序,已有若干学生的数据,包括学号,姓名,成绩,要求输出这些学生的数据并计算出学生人数和平均成绩
- 编写一个JAVA应用程序,用户从键盘只能输入整数,程序输出这些整数的乘积
- 编写一个Java应用程序,该程序包括3个类:定义一个学生类,Student有姓名,学号,选学的课程列表 ,定义一个课程类:课程名称,课程分数
- 用户分别从两个文本框输入学术的姓名和分数
- 编写一个程序,用户输入两个数,求其加减乘除,并用消息框显示计算结果。
- 编写一个程序,使用两个命令行参数,分别把值放在一个字符串变量和一个整型变量中,然后显示这些值。
- 8.8编写一个程序,显示提供加法、减法、乘法的菜单,该程序只接受菜单提供的选项,程序提示用户输入两个数字......
- 编写一个函数print,打印一个学生的成绩数组,该书组中有五个学生的数据,每个学生的数据包括num(学号)、name(姓名)、score(3门课的成绩)、用主函数输入这些数据,用print函数输出这些