JAVA第九次作业(2)

来源:互联网 发布:hl线切割软件下载 编辑:程序博客网 时间:2024/06/06 18:59

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

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.TreeSet;
import javax.swing.*;
public class TestShow {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyJFrame myJFrame=new MyJFrame("文本框显示");
myJFrame.Init();
}
}
class MyJFrame extends JFrame {
String name;
double score;
JPanel jPanel1,jPanel2,jPanel3,jPanel4;
JTextField nameText,scoreText;
JLabel nameJLabel,scoreJLabel;
JButton addButton;
JTextArea showArea;
Box box1,box2;
private TreeSet ts=new TreeSet();
public MyJFrame(String title){
super(title);
}
public void Init(){
this.setBounds(100,100,400,400);
GridLayout layout1 = new GridLayout(2,1);
jPanel1=new JPanel();
jPanel1.setLayout(layout1);
nameText=new JTextField("",2);
scoreText=new JTextField("",2);
nameJLabel=new JLabel("姓名:");
scoreJLabel=new JLabel("成绩:");
addButton=new JButton("添加");

jPanel2=new JPanel();
GridLayout layout2 = new GridLayout(1,2);
jPanel2.setLayout(layout2);

jPanel3=new JPanel();
GridLayout layout3 = new GridLayout(2,1);
jPanel3.setLayout(layout3);
box1=Box.createHorizontalBox();
box1.add(Box.createHorizontalStrut(1));
box1.add(nameJLabel);
box1.add(nameText);
box2=Box.createHorizontalBox();
box2.add(Box.createHorizontalStrut(2));
box2.add(scoreJLabel);
box2.add(scoreText);
box1.add(addButton);
jPanel3.add(box1);
jPanel3.add(box2);
jPanel2.add(jPanel3);
jPanel4=new JPanel(new BorderLayout());
jPanel4.add(addButton,BorderLayout.CENTER);
jPanel2.add(jPanel4);
jPanel1.add(jPanel2);

showArea=new JTextArea();
JScrollPane jp1=new JScrollPane(showArea);
jPanel1.add(showArea);

addButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
name=nameText.getText().trim();
score=Double.parseDouble(scoreText.getText().trim());
//System.out.println(name+":"+score);
showArea.setText("");
ts.add(new Student(name, score));
Iterator it=ts.iterator();
while (it.hasNext()) {
String string=it.next().toString()+'\n';
showArea.append(string);
}
}
});
this.add(jPanel1);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
}
}
class Student implements Comparable{
private String name;
private double score;

public String getName() {
return name;
}


public double getscore() {
return score;
}
public String toString(){
return "姓名:"+name+",成绩:"+score+"。";
}
public Student(String name,double score){
this.name=name;
this.score=score;
}


public int compareTo(Object arg0) {
// TODO Auto-generated method stub
Student s=(Student) arg0;
if(this.score-s.score>0)
return 1;
if(this.score-s.score==0)
return this.name.compareTo(s.name);
return -1;
}
}


原创粉丝点击