Java集合框架上机练习题(泛型、JFrame)

编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。

Student.java  
  
public class Student implements Comparable {  
    String name;  
    int score;  
    Student(String name,int score){  
        this.name=name;  
        this.score=score;  
    }  
    public String getName() {  
        return name;  
    }  
    public int getScore() {  
        return score;  
    }  
    //按学生成绩进行排序  
    public int compareTo(Object b) {  
        Student st=(Student)b;  
        int m=this.score-st.score;  
        //保证成绩相等时也能在文本区中显示  
        if(m==0)   
            return 1;  
        else return m;  
    }  
  
}  
MyFrame.java  
import java.awt.BorderLayout;  
import java.awt.event.*;  
import java.util.*;  
  
import javax.swing.*;  
  
public class MyFrame extends JFrame implements ActionListener{  
    //TreeSet泛型集合对象  
    TreeSet t;  
    //姓名文本框  
    JTextField text1;  
    //成绩 文本框  
    JTextField text2;  
    // 确认按钮  
    JButton button;  
    //文本区  
    JTextArea area;  
  
    MyFrame(){  
        init();  
        setVisible(true);  
        setDefaultCloseOperation(this.EXIT_ON_CLOSE);  
    }  
    void init() {  
        //TreeSet集合对象  
        t=new TreeSet();  
        //创建 姓名 标签  
        JLabel label1=new JLabel("姓名");  
        //姓名文本框  
        text1=new JTextField(10);  
        //创建 成绩标签  
        JLabel label2=new JLabel("成绩");  
        //成绩 文本框  
        text2=new JTextField(10);  
        // 确认按钮  
        button=new JButton("确定");  
        //文本区  
        area=new JTextArea(20,30);  
        //创建面板,把上面的组件添加到面板  
        JPanel panel=new JPanel();  
        panel.add(label1);  
        panel.add(text1);  
        panel.add(label2);  
        panel.add(text2);  
        panel.add(button);  
        //添加到窗口  
        add(panel,BorderLayout.NORTH);  
        add(area,BorderLayout.CENTER);  
        //给第一个文本框text1 添加监听器  
        text1.addActionListener(this);  
        //给第二个文本框text1 添加监听器  
        text2.addActionListener(this);  
        //给button按钮添加监视器  
        button.addActionListener(this);  
          
    }  
    //重写actionPerformed方法  
    public void actionPerformed(ActionEvent e) {  
        String name=text1.getText();  
        int score=0;  
        try{  
            //通过Integer.parseInt,把字符串类型转换为整型的数字  
             score=Integer.parseInt(text2.getText());  
             //如果输入的名字合法,添加到集合t中,再调用show方法,将集合t的内容显示在文本区中  
             if(name.length()>0) {  
                 Student s=new Student(name,score);  
                 t.add(s);  
                 show(t);  
             }  
        }catch(NumberFormatException exp) { //数字格式异常  
             text2.setText("请输入正确的字符");  
         }  
          
    }  
    public void show(TreeSet tr) {  
        //每次调用show方法,先把文本区中的内容清空  
        area.setText(null);  
        //获取迭代器it  
        Iterator it=tr.iterator();  
        while(it.hasNext()) {  
            Student s=(Student)it.next();  
            //将学生的信息显示在文本区中  
            area.append("姓名:"+s.getName()+"   成绩:"+s.getScore()+"\n");  
        }  
    }  
  
  
}  
Text.java  
  
  
public class Text {  
  
    public static void main(String args[]){  
        //创建MyFrame对象  
        MyFrame win=new MyFrame();  
        win.setBounds(100, 100, 400, 400);  
    }  
  
}  
Java集合框架上机练习题(泛型、JFrame)_第1张图片




你可能感兴趣的:(Java集合框架上机练习题(泛型、JFrame))