编写一个应用程序,用户分别从两个文本框输入学术的姓名和分 数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中 。
来源:互联网 发布:dnf决战人工智能攻略 编辑:程序博客网 时间:2024/06/05 02:19
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 name,score; //姓名和成绩标签 JTextField tname,tscore;//创建文本框 JTextArea ShowArea;//显示文本区域 JButton button; //创建按钮 JPanel panel;//创建面板 Map<String,String>studentMap,resultMap; public static void main(String[] args) { new Student(); } //构造方法 public Student() { init(); click(); } //初始化方法 public void init() { name=new JLabel("姓名"); //实例化 score=new JLabel("成绩"); tname=new JTextField(8); tscore=new JTextField(8); button=new JButton("确定"); panel=new JPanel(); ShowArea=new JTextArea(); panel.add(name); //控件组合 panel.add(tname); panel.add(score); panel.add(button); add(panel,BorderLayout.NORTH); //设置位置 add(ShowArea, BorderLayout.CENTER); setTitle("统计学生姓名和分数"); //设置窗口基本属性 setSize(500, 400); 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(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 void showMap() { ShowArea.setText(""); for(Map.Entry<String,String> entry:resultMap.entrySet()) { ShowArea.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
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分 数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中 。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- lesson 9:编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 2 编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
- Java集合框架上机练习题(泛型、JFrame)用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数
- 用户分别从两个文本框输入学术的姓名和分数
- 编写一个学生和教师数据输入和显示程序,学生数据有编号,姓名,班号,和成绩,教师数据有编号,姓名,职称和部门。要求将编号,姓名输入显示设计成一个类person,并作为学生数据类t和教师数据操作类的基类
- [4.21]编写一个程序,已有若干个学生的数据,包括学号、姓名、成绩、要求输出这些学生的数据并计算出学生人数和平均成绩(要求将学生人数和总成绩用静态数据成员表示)。
- 编写一个程序,已有若干学生的数据,包括学号,姓名,成绩,要求输出这些学生的数据并计算出学生人数和平均成绩
- loner_li 机试题 一个文本文件含有如下内容,分别表示姓名和成绩:张三 90 ..提供用户一个控制台界面,允许用户输入要查询的姓名,输入姓名并且按回车以后,打印出此人的成绩...
- 将学生的姓名成绩输入到Map中,并用分数排序前三名
- 编写一个程序,输入用户的姓名和电话号码,按姓名的词典顺序排列后,输出用户的姓名和电话号
- [5.18]编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号、和成绩,教师数据有编号 姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类stud
- 一个sql语句的编写 写出不及格门数大于等于2的学生的姓名和平均成绩
- PyTorch学习总结(五)——torch.nn
- 蓝牙开发经验小结——自动配对
- Ceres
- BIGEMAP软件详细功能列表介绍
- 前端框架 更改列数后不能进行分页并且页面报错
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分 数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中 。
- java8之数据流Stream的Map和flatMap的区别
- Linux下压缩和解压文件
- HTTP方法:get和post的区别
- MyEclipse下Maven的安装配置
- 问题 A: Hello World(JSU-ZJJ)
- mysql5.7官网直译优化和索引--索引统计的收集
- 定时器设置及同服务器一块启动和关闭
- 安装本地yum源