编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文
本区中。
[java] view plain copy
public class student implements Comparable<student>{
String name;
double grade;
public student(String name,double grade) {
// TODO Auto-generated constructor stub
this.name = name;
this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getGrade() {
return grade;
}
public void setGrade(double grade) {
this.grade = grade;
}
public int compareTo(student o) {
// TODO Auto-generated method stub
if(this.grade<o.grade)
{
return 0;
}
return 1;
}
}
import java.awt.Button;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.Box;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class WindowBoxLayout extends JFrame{
Box baseBox,boxV1,boxv2,boxV3,boxV4;
JTextField text1,text2;
Button btn2;
Button btn1;
ArrayList<student> list = new ArrayList<student>();
public WindowBoxLayout()
{
setLayout(new java.awt.FlowLayout());
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init(){
boxV1 = Box.createHorizontalBox();
boxV1.add(new Label("姓名"));
boxV1.add(Box.createHorizontalStrut(8));
text1 = new JTextField(8);
boxV1.add(text1);
boxv2 = Box.createHorizontalBox();
boxv2.add(new Label("成绩"));
boxv2.add(Box.createHorizontalStrut(8));
text2=new JTextField(8);
boxv2.add(text2);
boxV3 = Box.createHorizontalBox();
btn1 = new Button("添加");
boxV3.add(btn1);
boxV3.add(Box.createHorizontalStrut(8));
btn2 = new Button("排序");
boxV3.add(btn2);
boxV4 = Box.createHorizontalBox();
JTextArea text3 = new JTextArea(9,20);
boxV4.add(text3);
baseBox = Box.createVerticalBox();
baseBox.add(boxV1);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(boxv2);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(boxV3);
add(baseBox);
baseBox.add(Box.createVerticalStrut(10));
baseBox.add(boxV4);
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String name = text1.getText();
double grade = Double.parseDouble(text2.getText());
//System.out.println(name+" "+grade);
student s = new student(name, grade);
//System.out.println(s.name+" "+s.grade);
if (list.isEmpty()==true) {
list.add(0,s);
}
else
{
int i=0;
while(i<list.size())
{
student student = list.get(i);
System.out.println(student.name+" "+student.grade);
if(student.compareTo(s)==0)
{
break;
}
i++;
System.out.println(i);
}
list.add(i,s);
}
}
});
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Iterator<student> it = list.iterator();
while(it.hasNext())
{ student student =(student) it.next();
text3.append("姓名:"+student.name+" "+"成绩:"+student.grade+"\n");
//System.out.println(student.name+" "+student.grade+"\n");
}
}
});
}
}
import java.util.ArrayList;
@SuppressWarnings("unused")
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
WindowBoxLayout w = new WindowBoxLayout();
w.setBounds(100,100,310,350);
w.setTitle("成绩排序");
}
}
本区中。