Pętla i tablice - proszę o wskazanie błędu w kodzie

0

Proszę o wskazanie błędu w kodzie:

public class Gra extends JFrame implements ActionListener {
    int liczbaGraczy;
    String[] podanieGracza = {"Pierwszy ", "Drugi ", "Trzeci ", "Czwarty ", "Piąty ", "Szósty "};
    String[] choices = {"2", "3", "4", "5", "6"};
    String[] imie;

    // ...

    Gra() {
    String ilosc = (String) JOptionPane.showInputDialog(null,
                "Wybierz liczbę graczy:", "Liczba graczy",
                JOptionPane.QUESTION_MESSAGE, null, choices, choices[0]);
        liczbaGraczy = Integer.parseInt(ilosc);

        for(int i = 0; i<liczbaGraczy; i++){
            imie[i] = JOptionPane.showInputDialog(podanieGracza[i] + "gracz:");
        }
    }

poprawienie tytułu wątku i dodanie znacznika <code class="java"> - fp

0

Pierwszy błąd jest już w pierwszej linii:

extends JFrame implements ActionListener

lekcja na dziś: zasada jednej odpowiedzialności

0

Prawdziwy błąd polega na tym, że deklarujesz zmienną tablicową imie, ale nigdzie tej tablicy nie tworzysz.

0

Rzeczywiście, dzięki.

Nadal coś mi nie gra, dlaczego wartości z tablicy podaneImie nie podstawiają się do tablicy labeli imieGracza?

String ilosc = (String) JOptionPane.showInputDialog(null,
                "Wybierz liczbę graczy:", "Liczba graczy",
                JOptionPane.QUESTION_MESSAGE, null, choices, choices[0]);
liczbaGraczy = Integer.parseInt(ilosc);
        
podaneImie = new String[liczbaGraczy];
imieGracza = new JLabel[liczbaGraczy];
        
for(int i = 0; i<liczbaGraczy; i++){
                podaneImie[i] = JOptionPane.showInputDialog(podanieGracza[i] + "gracz:");
                imieGracza[i].setText(podaneImie[i]); //tutaj coś nie gra
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1