[英]How to do I print an arraylist to a JTextArea?
我似乎無法弄清楚如何將arrayList<String>
打印到JTextArea,並嘗試使用append()
和setText()
。 我也試圖創建一個通過循環打印出ArrayList的方法,但是由於它不是String類型,所以無法將其添加到JTextArea中。
申請人應該獲取學生資料(姓名,年級,大學選擇)並將其添加到ArrayList<String>
申請人中。 如果對於以下if語句為true,則可以通過JButton完成此操作:
if (studentsAverage > 74 && validInput && studentsAverage < 100) {
studentChoices.addAll(uniOptions.getSelectedValuesList());
person = new Student (namePromptTF.getText(), averagePromptTF.getText(),Applicants, studentChoices);
arrayCount++;
numberOfApplicants.setText(arrayCount +"/" +100+"students");
person.printProfile(); //dont need
person.studentProfileSort(); // dont need
displayAllApplicants.append(person.returnProfile());
Applicants.add(person);
該數組傳遞給一個擁有以下內容的Student對象:
private ArrayList<Student> ApplicantArray;
然后通過以下方法對ApplicantArray進行排序:
void studentProfileSort() {
Student profileLine = null;
int numberOfStudents = ApplicantArray.size();
ArrayList<Student> displayAllSorted = new ArrayList<Student>();
for(int i = 1; i<numberOfStudents - 1; i++){
for(int j = 0; j<(numberOfStudents - i); j++) {
if(ApplicantArray.get(i).getFamilyName().compareTo(ApplicantArray.get(i).getFamilyName())>0){
ApplicantArray.set(j, ApplicantArray.get(i));
}
}
ApplicantArray.get(i).returnProfile();
}
}
有沒有一種方法可以在循環內包含return語句,以便可以將我的方法更改為String類型?
起初,您的排序算法似乎無效
ApplicantArray.get(i).getFamilyName().compareTo(ApplicantArray.get(i).getFamilyName())
您將值與其自身進行比較,結果始終為0。即使可行,在下一行中,您也可以通過設置一個值而不是交換兩個值或將其設置為新的ArrayList來覆蓋數組。
但是,如果一切正常,您可以通過以下方式打印這些學生:
StringBuilder b = new StringBuilder();
for (Student student : applicantArray) {
b.append(student + "\n"); // this if you implemented toString() in Student
b.append(student.getFamilyName() + ' ' + student.getFirstName() + "\n"); // or something like this
}
textArea.setText(b.toString());
PS:永遠不要對變量或參數使用UpperCamelCase,而應使用LowerCamelCase(例如ApplicantArray-> ApplicantArray)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.