java - 如何使用 jFrame 将文件的一部分加载到 Java 中的 ArrayList 中?

标签 java swing arraylist

我正在为作业编写一个程序,该程序使用 jFrame UI 读取充满“成绩”(A、B、C、C+ 等)的记事本文件的内容,然后计算成绩总数,以及最高和最低成绩。在 jFrame 中,用户输入文件名(我不想使用 JFileChooser,因为这不是作业的一部分)并单击“加载”来加载文件。我正在努力使用 Load() 方法。到目前为止,我已经:

  public ArrayList<LetterGrade> Load(File file) throws FileNotFoundException {

    ArrayList<LetterGrade> grades = new ArrayList();

    try{
        Scanner input = new Scanner(file);
        String grade = input.nextLine();
        grades.add(LetterGrade.grade);
    } catch (FileNotFoundException ex) {
        System.out.printf("ERROR: %s", ex);
    }

    return grades;

我知道 Grades.add(LetterGrade.grade) 行中有一个问题,因为我只能将 LetterGrade 枚举(A、AMinus、BPlus、B 等)添加到 ArrayList“grades”中,而 Grades 是一个字符串。我怎样才能做到这样,当扫描仪读取文件时,它会获取每个成绩并将其添加到名为“grades”的ArrayList中?另外,我只想获取 LetterGrade 枚举中的成绩,那么我会使用 if/else 来过滤它吗?感谢您的帮助,我会尽快回复问题。

最佳答案

将 LetterGrade.grade 更改为

LetterGrade.valueOf(grade);

LetterGrade.grade 将用于访问 LetterGrade 范围内名为 Grade 的变量。

您需要将字符串转换为枚举。

参见Lookup enum by string value了解更多详情

关于java - 如何使用 jFrame 将文件的一部分加载到 Java 中的 ArrayList 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220422/

相关文章:

java - 有人可以帮我澄清我对这个正则表达式的理解吗?

java - 无法从另一个 jFrame 获取值

java - 单击删除按钮时,android从数组列表中删除值

java - 多重矩形生成

java - 使用堆栈进行洪水填充

java - 任何 JPA 实现(或更广泛的 Java ORM 实现)是否支持可更新游标

java - 如何在不继承 Swing 的情况下正确地获取 "layer"图像(并更改源)

java - 处理拖放 : view or business logic?

java - 无法从我的 Intent 中获取 ArrayList<String>

Java:JPanel 背景不缩放