Witam, piszę w Javie program do nauki słówek angielskiego w ramach zaliczenia, i napotkałem problem, którego nie pojmuję. Chodzi o to, że utworzony JPanel w konstruktorze przypisuje prywatnej zmiennej pod nazwą wyrazy referencję do listy obiektów typu ArrayList, w której to znajduje się nieokreślona z góry liczba wyrazów.
W czasie pracy programu, jeśli użytkownik poprawnie odgadnie wyraz, wywoływana jest metoda usunWyraz(), która powinna usunąć wyraz z listy, tak się jednak nie dzieje, rozmiar listy wyrazy jest wciąż taki sam, i żaden z wyrazów nie zostaje usunięty, dlaczego?
Oto fragment kodu
public class DictPanel extends javax.swing.JPanel {
private MainFrame parent;
private ArrayList wyrazy;
private Integer wskaznik;
private Integer poprawne = 0;
private Integer niepoprawne = 0;
private AudioPlayer player;
private String filepath = "";
private String odgadywany;
private Random losowaLiczba = new Random();
private ArrayList powtarzane = new ArrayList();
// 0- nauka, wyrazy pl odgadywane
private int opcja;
/** Creates new form DictPanel */
public DictPanel(MainFrame parent_frame, ArrayList wyrazy, int tryb) {
parent = parent_frame;
this.wyrazy = wyrazy;
this.opcja = tryb;
initComponents();
odswiez();
}
////
private void usunWyraz(){
System.out.print(wskaznik + ", ");
wyrazy.remove(wskaznik);
System.out.print(wyrazy.size() + "\n");
}
Wynik działania programu (klikanie w przycik, który wywołuje metodę usunWyraz())
5, 6
4, 6
2, 6
3, 6
1, 6
4, 6
1, 6
0, 6
2, 6
3, 6
0, 6
5, 6
5, 6
0, 6
I tak sobie mogę klikać w nieskończoność :/