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);
}
}
}
谢谢借鉴 有错的地方 或者更好的方法记得戳我