|
发表于 2023-11-12 17:51:18
|
显示全部楼层
本楼为最佳答案
 - import java.util.TreeSet;
- class Student implements Comparable<Student> {
- private String name;
- private int score;
- public Student(String name, int score) {
- this.name = name;
- this.score = score;
- }
- @Override
- public int compareTo(Student other) {
- return Integer.compare(this.score, other.score);
- }
- @Override
- public String toString() {
- return "Name: " + name + ", Score: " + score;
- }
- }
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.util.TreeSet;
- public class StudentFrame extends JFrame implements ActionListener {
- private JTextField nameField, scoreField;
- private JTextArea displayArea;
- private TreeSet<Student> studentSet;
- public StudentFrame() {
- super("Student Score Sorter");
- setLayout(new FlowLayout());
- JLabel nameLabel = new JLabel("Name:");
- add(nameLabel);
- nameField = new JTextField(10);
- add(nameField);
- JLabel scoreLabel = new JLabel("Score:");
- add(scoreLabel);
- scoreField = new JTextField(5);
- add(scoreField);
- JButton addButton = new JButton("Add");
- addButton.addActionListener(this);
- add(addButton);
- displayArea = new JTextArea(10, 20);
- add(displayArea);
- studentSet = new TreeSet<>();
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- String name = nameField.getText();
- int score = Integer.parseInt(scoreField.getText());
- studentSet.add(new Student(name, score));
- displayArea.setText("");
- for (Student student : studentSet) {
- displayArea.append(student.toString() + "\n");
- }
- }
- public static void main(String[] args) {
- StudentFrame frame = new StudentFrame();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.setSize(300, 200);
- frame.setVisible(true);
- }
- }
复制代码
这段代码实现了一个学生成绩排序的程序。首先定义了一个Student类,实现了Comparable接口,根据学生成绩进行比较。然后编写了一个主类StudentFrame,继承自JFrame并实现了ActionListener接口,用于处理用户输入的姓名和成绩,并将学生信息按成绩排序后显示在文本区中。在main方法中创建了一个StudentFrame对象并显示出来。 |
|