Java GUI 简单编程 输入学生学号姓名 按学号排序或删除

解释如下

运行窗口界面如下:在这里插入图片描述
向其中输入点击添加 显示 :A student has been added在这里插入图片描述
最终 输入并排序结果如下图 (如当输入的有删除情况时 点击删除 将重复的数据删除 并输出删除后的结果) :在这里插入图片描述
**

代码如下:

**
这是代码截屏 嘻嘻😁在这里插入图片描述
下面是源代码

/*
1.补全下述图形用户程序,完成以下功能:
1)当用户点击“添加”按钮时,增加一个学生;
2)当用户点击“排序”按钮时,对所有学生按学号进行排序输出;
3)当用户点击“删除”按钮时,移除所有重复的学生,并逐个输出去重后的学生信息。
*/

import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class test1 {
    public static void main(String [] args){
        new TFrame().launchFrame();
    }
}
class TFrame extends Frame{
    TextField num,name;
    Map<String,String>  ppt = new IdentityHashMap();
    public void launchFrame(){             //基本的框架输入
        num = new TextField(10);
        name = new TextField(15);

        Label a1 = new Label("学号");
        Label a2 = new Label("姓名");
        Button button1 = new Button("添加");
        Button button2 = new Button("排序");
        Button button3 = new Button("删除");
        button1.addActionListener(new Montitor1());   //监听器
        button2.addActionListener(new Montitor1());
        button3.addActionListener(new Montitor1());
        setLayout(new FlowLayout());
        add(a1);
        add(num);
        add(a2);
        add(name);
        add(button1);  //添加按钮1
        add(button2);  //添加按钮2
        add(button3);  //添加按钮3
        pack();
        setVisible(true);
        this.addWindowListener(new WindowsMonitor());
    }
    //注意 到77行才是关键代码 剩下的可以不看
    private class Montitor1 implements ActionListener{  //监听  并作出反应
        public void actionPerformed(ActionEvent e) {
            if(e.getActionCommand().equals("添加")){        //对按钮"添加"进行判断
                ppt.put(num.getText() ,name.getText());    //将从输入框输入的东西加入map中
                System.out.println("A Student has been added");
                num.setText("");
                name.setText("");
            }
            else if(e.getActionCommand().equals("排序")){   //对按钮"排序"进行判断
                Object [] object1 = ppt.keySet().toArray();
                Arrays.sort(object1);
                for (int i = 0;i < object1.length; i++){
                    System.out.println( "After sort  学号:"+ object1[i] + " 姓名: " + ppt.get(object1[i]) );
                }
            }
            else if(e.getActionCommand().equals("删除")){   //通过监听对按钮"删除"进行判断
                Object [] object2 = ppt.keySet().toArray();
                Arrays.sort(object2);
                for(int i = 0; i< object2.length; i++){
                    for(int j = i + 1; j< object2.length;j++){
                        if(object2[i].equals(object2[j])){
                            ppt.remove(object2[i]);        //删除重复的学生
                            ppt.remove(object2[j]);        //
                        }
                    }
                }
               Object [] object3 = ppt.keySet().toArray();
                for(int i = 0; i < object3.length; i++){
                    System.out.println("After deleted 姓名: " + object3[i] + " 学号: " + ppt.get(object3[i]));
                }
            }
        }
    }
    class WindowsMonitor extends WindowAdapter{   //对关闭文本框的监听 并作出反应  (没有用的话可以不要)
        public void windowClosing(WindowEvent e){
            setVisible(false);
            System.exit(0);
        }
    }
}

谢谢借鉴 有错的地方 或者更好的方法记得戳我
 
posted @ 2021-05-20 13:15  好的!文西  阅读(728)  评论(0编辑  收藏  举报