输入不进去应该怎么改



package 第六次作业;
public class Member implements Comparable<Member>{
    private String id;
    private String name;
    private int score;
    public Member() {
        super();
    }
    public Member(String id, String name, int score) {
        super();
        this.id = id;
        this.name = name;
        this.score = score;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        this.score = score;
    }
    @Override
    public String toString() {
        return "Member [id=" + id + ", name=" + name + ", score=" + score + "]";
    }
    public int compareTo(Member o) {
        // TODO 自动生成的方法存根
        return this.score-o.score;
    }
    
}
package 第六次作业;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class 比赛评分排序 {
static Scanner sc =new Scanner( System .in);
static ArrayList<Member> members = new ArrayList<>();
    public static void main(String[] args) {
        System.out.println("请输入参赛选手个数");
        int n = sc.nextInt();
        // TODO 自动生成的方法存根
        //假设在某次比赛中,有10名评委,对每名参赛选手的评分规则为:
//每名评委在区间[0,10]给出评分,在10个分数中去掉一个最高分,
//去掉一个最低分,平均剩下的8个分数为参赛选手的最终得分。
//一共N名参赛选手,N随机输入,请分析以上要求,
//用所学Java图形用户界面知识,设计一个图形用户界面(GUI)。
//        实现以下基本功能: 
//        (1)建立两个输入框,用于输入当前参赛选手的编号与姓名;
//        (2)建立十个输入框,用于输入评委对参赛选手的评分;
//        (3)建立一个输出框,用来显示当前参赛选手的最后得分;
//        (4)建立一个输出框,用来显示所有参赛选手的结果并实现排序
        JFrame frame = new JFrame("评分排序");
        frame.setBounds(300200500400);
        frame.setLayout(new BorderLayout());
        Panel a1 = new Panel();
        a1.setBackground(Color.LIGHT_GRAY);
        frame.add(a1,BorderLayout.NORTH);
        a1.setLayout(new FlowLayout(FlowLayout.CENTER,50,50));
        JLabel b1 = new JLabel("编号:");
        TextField c1 = new TextField(20);
        JLabel b2 = new JLabel("姓名:");
        TextField c2 = new TextField(20);
        a1.add(b1);
        a1.add(c1);
        a1.add(b2);
        a1.add(c2);
        
    Panel a2 = new Panel();
    a2.setBackground(Color.GRAY);
        frame.add(a2,BorderLayout.CENTER);
        a2.setLayout(new FlowLayout(FlowLayout.CENTER,55,60));
        JLabel b3 = new JLabel("评分1:");
        TextField c3 = new TextField(10);
        JLabel b4 = new JLabel("评分2:");
        TextField c4 = new TextField(10);
        JLabel b5= new JLabel("评分3:");
        TextField c5 = new TextField(10);
        JLabel b6 = new JLabel("评分4:");
        TextField c6 = new TextField(10);
        JLabel b7 = new JLabel("评分5:");
        TextField c7 = new TextField(10);
        JLabel b8 = new JLabel("评分6:");
        TextField c8 = new TextField(10);
        JLabel b9 = new JLabel("评分7:");
        TextField c9= new TextField(10);
        JLabel b10= new JLabel("评分8:");
        TextField c10 = new TextField(10);
        JLabel b11 = new JLabel("评分9:");
        TextField c11 = new TextField(10);
        JLabel b12 = new JLabel("评分10:");
        TextField c12= new TextField(10);
        a2.add(b3);
        a2.add(c3);
        a2.add(b4);
        a2.add(c4);
        a2.add(b5);
        a2.add(c5);
        a2.add(b6);
        a2.add(c6);
        a2.add(b7);
        a2.add(c7);
        a2.add(b8);
        a2.add(c8);
        a2.add(b9);
        a2.add(c9);
        a2.add(b10);
        a2.add(c10);
        a2.add(b11);
        a2.add(c11);
        a2.add(b12);
        a2.add(c12);
        //显示所有选手总分
        Panel a3 = new Panel();
        a3.setBackground(Color.LIGHT_GRAY);
        frame.add(a3,BorderLayout.SOUTH);
        a3.setLayout(new FlowLayout(FlowLayout.LEFT,110,60));
        a3.setPreferredSize(new Dimension(500,300));
        Button button  = new Button("计算成绩");
        button.setSize(55);
        a3.add(button);
        JLabel b13 = new JLabel("总成绩");
        TextField c13 = new TextField(100);
        JLabel b14 = new JLabel("总成绩排名");
        TextField c14 = new TextField(100);
        a3.add(b13);
        a3.add(c13);
        a3.add(b14);
        a3.add(c14);
        frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO 自动生成的方法存根
            for(int i= 0;i<n;i++) {
                String id = c1.getText();
                String name = c2.getText();
                int s1 = Integer.parseInt(c3.getText());
                int s2 = Integer.parseInt(c4.getText());
                int s3 = Integer.parseInt(c5.getText());
                int s4 = Integer.parseInt(c6.getText());
                int s5 = Integer.parseInt(c7.getText());
                int s6 = Integer.parseInt(c8.getText());
                int s7 = Integer.parseInt(c9.getText());
                int s8 = Integer.parseInt(c10.getText());
                int s9 = Integer.parseInt(c11.getText());
                int s10 = Integer.parseInt(c12.getText());
                int [] arr = {s1,s2,s3,s4,s5,s6,s7,s8,s9,s10};
                int max = arr[0];
                int min = arr[0];
                int m=0;
                int n=0;
                for(int j=1;j<arr.length;j++) {
                    if(arr[j]>max) {
                        max=arr[j];
                        m=j;
                    }
                    if(arr[j]<min) {
                        min=arr[j];
                        n=j;
                    }
                }
                arr[m]=0;
                arr[n]=0;
                int total = 0;
                for(int k=0;k<arr.length;k++) {
                    total+=arr[k];
                }
                int ave = total/8;
    members.add(new Member(id,name,ave));
            c1.setText("");
            c2.setText("");
            c3.setText("");
            c4.setText("");
            c5.setText("");
            c6.setText("");    
            c7.setText("");
            c8.setText("");
            c9.setText("");
            c10.setText("");
            c11.setText("");
            c12.setText("");
            
                //c13.setText("编号:"+id+"姓名:"+name+"总成绩:"+ave);
            }
            c13.setText(members.toString());
            Collections.sort(members);
        }
    });
    }
}

根据你提供的代码,你在按钮的ActionListener中获取了用户输入的数据,并将其存储在了ArrayList中。然后,你想要将ArrayList中的数据显示在文本框中。但是,你在文本框中显示数据的代码有一些问题。

首先,你创建了一个文本框c13,并将其添加到a3面板中。然后,你在按钮的ActionListener中使用以下代码尝试将数据显示在文本框中:

c13.setText(members.toString());

但是,这样的写法是不正确的。因为toString()方法只会返回ArrayList的字符串表示形式,而不会返回每个Member对象的详细信息。所以,需要将ArrayList中的每个Member对象的详细信息提取出来,并将其显示在文本框中。

在你的情况下,可以使用StringBuilder来构建要显示的字符串。可以在按钮的ActionListener中添加以下代码:

StringBuilder sb = new StringBuilder();
for (Member member : members) {
sb.append(member.toString()).append("\n");
}
c13.setText(sb.toString());

这样,就可以将每个Member对象的详细信息显示在文本框c13中了。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7458950
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:判断输入的字符是不是字母
  • 除此之外, 这篇博客: 为什么索引可以提升查询速度?中的 查看数据文件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    由于是二进制的,无法直接查看,在Linux环境下,可以使用hexdump查看。

    表名:mytest
    列:col1、col2、col3、col4
    
    数据记录:
    1	aa	bb	cc
    2	dd	ee	ff
    3	gg	hh	NULL
    
    $ hexdump -C -v mytest.ibd
    
    0000c080  20 80 00 00 01 00 00 00  7b c3 42 e1 00 00 01 59  | .......{.B....Y|
    0000c090  01 10 61 61 62 62 63 63  02 02 02 00 00 00 18 00  |..aabbcc........|
    0000c0a0  1f 80 00 00 02 00 00 00  7b c3 43 e2 00 00 01 4f  |........{.C....O|
    0000c0b0  01 10 64 64 65 65 66 66  02 02 01 00 00 20 ff b0  |..ddeeff..... ..|
    0000c0c0  80 00 00 03 00 00 00 7b  c3 48 e5 00 00 01 58 01  |.......{.H....X.|
    0000c0d0  10 67 67 68 68 00 00 00  00 00 00 00 00 00 00 00  |.gghh...........|
    

    可以看到,值为NULL的列除了在“NULL标志位”占用一个标记外,不会再占用空间了。

  • 您还可以看一下 熊健老师的嵌入式应该怎么去学?课程中的 嵌入式的现状小节, 巩固相关知识点

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

你的代码只调用了一次sc.nextInt();输入了一个n,你输入好几个的代码在哪呢,输入什么东西呢