Первая Java-программа.Я создаю приложение для карточек для развлечения / самообучения, и я еще не разобрался, как перевернуть карточку, чтобы показать ее обратно.
ArrayList (называемый ready ) содержитобъекты моего класса Flashcard.Одним из методов Flashcard является showFront .В MainProgram.java я буду перебирать ArrayList, вызывая этот метод на каждой итерации, чтобы показать переднюю часть флэш-карты, а затем дождаться ввода с клавиатуры, чтобы решить, что делать дальше:
MainProgram.java:
ArrayList<Flashcard> ready = new ArrayList<Flashcard>();
ArrayList<Flashcard> entireDeck = new ArrayList<Flashcard>();
// Create ten flashcards and add them to the pile "entireDeck"
for(int counter = 0; counter < 10; counter++) {
Flashcard FC = new Flashcard();
entireDeck.add(FC);
}
(entireDeck.get(0)).addData(0,"A little","Un poco");
Flashcard.java:
class Flashcard {
public int cardNumber;
public String word;
public String translation;
// Add data to a flashcard
public void addData(int cardNumber, String word, String translation){
this.cardNumber = cardNumber;
this.word = word;
this.translation = translation;
}
public void showFront(int index) {
System.out.println("Card #:\t\t" + cardNumber);
System.out.println("Word:\t\t" + word + "\n\n");
System.out.println("1) Replay audio\t 2) Flip card\t 3) Skip\n");
Scanner nav = new Scanner(System.in);
int userInput = nav.nextInt();
switch (userInput) {
case 1:
System.out.println("Playing audio");
break;
case 2:
System.out.println("Flipping card");
showBack(**what to put here?**);
break;
case 3:
System.out.println("Next card...");
break;
default:
System.out.println("Invalid entry. Come back soon!\n");
break;
}
}
public void showBack(int index) {
System.out.println("Card #:\t\t" + cardNumber);
System.out.println("Translation:\t\t" + translation + "\n\n");
System.out.println("1) Replay audio\t 2) Flip card\t 3) Skip\n");
}
}
Цикл for в MainProgram.java использовался для добавления карточек вколода ready - я просто удаляю большую часть своего кода, чтобы сосредоточиться на проблеме, с которой я столкнулся.
Консоль правильно отображает переднюю часть карты:
Вывод на консоль с отображением текущей карты:
И, конечно, он показывает следующую карту в последовательности, потому что я выбрал отключение каждого корпуса переключателя довыяснить, как правильно передать правильный аргумент в showBack ():
Вывод на консоль с отображением следующей карты:
Снова зачистканенужный код для уточнения / краткости.
Поправьте меня, если я ошибаюсьно я не могу взять переменную i из цикла в MainProgram.java и использовать ее в качестве аргумента в showBack () , потому что i не является глобальнымпеременная.Я думаю, что мне просто нужно найти текущую итерацию цикла for и использовать ее в качестве аргумента showBack, чтобы показать обратную сторону этой карты.
Я понимаю, что в конце концов мне придется иметь дело сУтечка памяти сканера, вызванная неиспользованием nav.close ().
У меня такое ощущение, что это такое простое решение.** Редактировать: ** Я должен использовать указатели? Как я могу передать индекс цикла for в качестве аргумента для pthread_create