题目:
编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
代码:package input;
import java.util.*;
import java.util.List;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Again extends JFrame implements ActionListener{
JLabel label1,label2,label3;
JButton jb;
JTextField c,d;
JTextArea jtextarea;
JScrollPane scroll;
Map<String, Integer> map;
List<Student> list = new ArrayList<Student>();
Again()
{ //shilihua
map=new HashMap<String,Integer>();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭模式
label1 = new JLabel("姓名:");//标签实例化
label2 = new JLabel("成绩:");
label3 = new JLabel("结果:");//标签实例化
jb=new JButton("提交");
c=new JTextField(10);
d=new JTextField(10);
jtextarea = new JTextArea(14,14);
scroll=new JScrollPane(jtextarea);//设置窗格为流式
setLayout(new FlowLayout());
add(label1);
add(c);
add(label2);
add(d);
add(jb);
add(label3);
add(scroll);//将滚动窗格加入窗孔
setBounds(1060,100,200,388);//设置位置/大小
setVisible(true);
jb.addActionListener(this);//事件源添加监听器(事件监听器实例);窗体自身类作为事件监听器
}
public static void main(String[] args) {
new Again();
}
//事件处理器的处理函数不是自己所写//包括泛型与比较函数
@Override
public void actionPerformed(ActionEvent e) {
jtextarea.setText("");
String name = c.getText();
String grade = d.getText();
c.setText(null);
d.setText(null);
if (!"".equals(name) && !"".equals(grade)) {
list.add(new Student(name, Float.parseFloat(grade)));
// jtextarea.append("姓名:" + name + " 成绩:" + grade + "\n");
}
Collections.sort(list);// 对list排序
Iterator<Student> iterator = list.iterator();
Student student;
while (iterator.hasNext()) {
student = iterator.next();
jtextarea.append("姓名:" + student.name + " 成绩:" + student.grade + "\n");
}
// String name1 = c.getText();
//String g = d.getText();
//Integer b=Integer.valueOf(g);
//map.put(name1,b);
}
//Set value=map.entrySet();
//Collection value=map.values();
//Iterator it= value.iterator();
//while(it.hasNext())
//{ Object value1=it.next();
//jtextarea.setText((String) value1);
//}
//排序问题未实现
}
package input;
class Student implements Comparable<Student> {
String name;
float grade;
public Student(String name, float grade) {
super();
this.name = name;
this.grade = grade;
}
@Override
public int compareTo(Student o) {
// TODO Auto-generated method stub
return (int) (o.grade - this.grade);
}
}
结果: