Всякий раз, когда я пытаюсь использовать setText внутри метода KeyPressed, он не работает, хотя, когда я использую его в другом методе (initComponents) внутри того же класса, он работает там.
Не стесняйтесь спрашивать любой другой код, если это необходимо!
Это метод KeyPressed, где он не работает:
@Override
public void keyTyped(KeyEvent e) {
char typed = e.getKeyChar();
if (Character.isLetter(typed) && r.getHuidigeKolom() < r.getAantalLetters()) {
typed = Character.toUpperCase(typed);
r.getLetters()[r.positie(r.getHuidigeRij(), r.getHuidigeKolom())].setText(typed + "");
r.getLetters()[r.positie(r.getHuidigeRij(), r.getHuidigeKolom())].setBackground(Color.blue);
if (r.getHuidigeKolom() == 0) {
for (int i = 1; i < r.getAantalLetters(); i++) {
r.getLetters()[r.positie(r.getHuidigeRij(), i)].setText(".");
r.getLetters()[r.positie(r.getHuidigeRij(), i)].setBackground(Color.blue);
}
r.volgendeKolom(true);
if (r.getHuidigeKolom() < r.getAantalLetters()) {
r.getLetters()[r.positie(r.getHuidigeRij(), r.getHuidigeKolom())].setBackground(hoverKleur);
}
if (typed == 10 && r.getHuidigeKolom() >= r.getAantalLetters()) { //typed 10 is ENTER
this.controle();
}
if (typed == 8 && r.getHuidigeKolom() > 0) { //typed 8 is BACKSPACE
this.eentjeTerug();
}
}
}
}
Метод setText работает в этом методе:
private void initComponents(String woord) {
this.setLayout(new GridLayout(r.getAantalPogingen(), r.getAantalLetters(), 2, 2));
for (int i = 0; i < r.getAantalPogingen() * r.getAantalLetters(); i++) {
r.getLetters()[i] = new Label();
r.getLetters()[i].setBackground(Color.white);
r.getLetters()[i].setForeground(Color.black);
r.getLetters()[i].setAlignment(Label.CENTER);
r.getLetters()[i].setFont(new Font("Groot", Font.BOLD, 48));
this.add(r.getLetters()[i]);
}
for (int i = 0; i < 5; i++) {
r.getLetters()[i].setText(woord.charAt(i) + "");
r.getLetters()[i].setBackground(Color.blue);
}
r.setHuidigeKolom(0);
r.setHuidigeRij(0);
}
Я очень ценю любую помощь, которую вы можете предоставить.