2 svar
88 visningar
Borisgun behöver inte mer hjälp
Borisgun 12 – Fd. Medlem
Postad: 10 jan 2018 17:33

Printa två objekt med samma namn i en arraylist (Jframe form)

Iterator<Student> studItr = studentArray.iterator();
int antal = 0;

while(studItr.hasNext()){
Student s = (Student) studItr.next();


if(s.getlName().equalsIgnoreCase(lNameTF.getText())){
taStudenter.setText(null);
taStudenter.append(s.getStudent() + "\n");
taStudenter.append(s.getStudent() + "\n");

antal++;
taStudenter.append("Amount of student with the same lastname: " + (antal) + "\n");
}
}

getlName är min excessor metod som returnerar ett efternamn.
lNameTF är variabel namnet på textfältet i min jframe.

Koden ovanför låter en användare att söka efter ett objekt i en arraylist baserat på ett efternamn. Men jag verkar endast printa ut det objektet (studenten med det efternamn som användaren matar in och som finns i min arraylist) som ligger högst upp i arraylistan. 

Jag vill att alla objekt med samma efternamn  ska printas ut när användaren söker på det efternamnet och inte bara den som ligger högst upp i min arraylist.

Vad måste jag lägga till för att få alla objekt med samma efternamn att printas?

jek7 35 – Fd. Medlem
Postad: 10 jan 2018 23:35

Nu programmerar jag iofs inte Java, och vet inte vad allt här gör...

Men för mig ser det ut som du tömmer output varje gång du får en träff, och då blir det ju bara en student kvar synligt när den loopat klart. Jag tycker taStudenter.setText(null); borde flyttas till före while-loopen istället. Och förmodligen vill man flytta sista taStudenter.append till längst ner, efter loopen.

Om jag är ute och cyklar så ber jag om ursäkt, men ingen annan hade svarat hittils, så du kan ju alltid testa :-)

Borisgun 12 – Fd. Medlem
Postad: 11 jan 2018 11:58

Jag kom på det lite senare och du har helt rätt. Jag tömmer outputen varje gång jag får en träff. 

Men tack ändå för att du svarade.

Svara
Close