簡體   English   中英

如何將數組列表打印到JTextArea?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM