我正在开发一个 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";
谢谢你
如果您想访问多个 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
来参考。