如何将 if-else 条件的输出存储在 Java Swing 中的数组中并在不同的 JFrame 中访问它

问题描述 投票:0回答:1

我正在开发一个 Java Swing 应用程序,我需要将 if-else 条件的输出存储在数组中,然后在不同的 JFrame 中调用此存储的数组。 这是我正在工作的示例代码

private void submitButtonActionPerformed(java.awt.event.ActionEvent evt)                                             
       ArrayList<Gradeprac> studList = Gradeprac.getStudentList();
    DefaultTableModel model = (DefaultTableModel) tblStudents.getModel();
    int rowCount = model.getRowCount();

    for (int i = 0, row = 0; i < studList.size(); i++) 
        if (studList.get(i).section.equals(cmbSections.getSelectedItem().toString())) 
            Object value = model.getValueAt(row, 2);

            if (value == null || ((String) value).isEmpty()) 
                value = "NE";
                model.setValueAt(value, row, 2);
 
            String grade = convertToGrade(value);

            System.out.println("Percentage: " + value + "% - Grade: " + grade);

            row++;
  
private String convertToGrade(Object value) 
    try 
        double percentage = Double.parseDouble(value.toString());
        int percentageInt = (int) percentage;

        if (percentageInt < 100 && percentageInt >= 96.5) 
            return "1.00";
         else if (percentageInt < 97 && percentageInt >= 92.5) 
            return "1.25";
         else if (percentageInt < 93 && percentageInt >= 88.5) 
            return "1.50";
         else if (percentageInt < 89 && percentageInt >= 84.5) 
            return "1.75";
         else if (percentageInt < 85 && percentageInt >= 81.5) 
            return "2.00";
         else if (percentageInt < 82 && percentageInt >= 78.5) 
            return "2.25";
         else if (percentageInt < 79 && percentageInt >= 75.5) 
            return "2.50";
         else if (percentageInt < 76 && percentageInt >= 72.5) 
            return "2.75";
         else if (percentageInt < 73 && percentageInt >= 69.5) 
            return "3.00";
         else if (percentageInt < 70 && percentageInt >= 0) 
            return "5.00";
        else 
            return "INC";
        
     catch (NumberFormatException e) 
        return "NE";
         

谢谢你

java arrays if-statement
1个回答
0
投票

如果您想访问多个 JFrame 中的变量,您应该创建可以在不同 JFrame 中访问的公共静态变量。

我假设您想要创建一个包含所有

grade
字符串的数组,然后可以在另一个 JFrame 中访问该数组。如果是这样,您应该创建一个新的
public static ArrayList<String>
并将所有成绩添加到它的
.add()
中。所以你的新代码将如下所示:

public class yourFrame extends javax.swing.JFrame {
    // insert this line:
    public static ArrayList<String> grades = new ArrayList();
    ...
    private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {
        ArrayList<Gradeprac> studList = Gradeprac.getStudentList();
        DefaultTableModel model = (DefaultTableModel) tblStudents.getModel();
        int rowCount = model.getRowCount();

        for (int i = 0, row = 0; i < studList.size(); i++) {
            if (studList.get(i).section.equals(cmbSections.getSelectedItem().toString())) {
            Object value = model.getValueAt(row, 2);

            if (value == null || ((String) value).isEmpty()) {
                value = "NE";
                model.setValueAt(value, row, 2);
            }
            String grade = convertToGrade(value);
            // add each grade to your array
            grades.add(grade);
        }
        row++;
    }
    ...
}

然后,如果您想在另一个 JFrame 中访问该数组,您可以使用

import static package.yourFrame.grades
将其导入到 JFrame 中,然后可以在该 JFrame 中通过其名称
grades
访问它。 或者您也可以通过
package.yourFrame.grades
来参考。

© www.soinside.com 2019 - 2024. All rights reserved.