ja bym obs�u�y� w jTextForm naciskanie klawiszy i sprawdzi� czy wci�ni�to
klawisz enter, je�li tak to uruchamiam funkcj� przycisku
Greg
> ja bym obs�u�y� w jTextForm naciskanie klawiszy i sprawdzi� czy
wci�ni�to
> klawisz enter, je�li tak to uruchamiam funkcj� przycisku
Dzi�ki.
A �eby nie otwiera� kolejnego w�tku, to mam jeszcze jedn� pro�b�.
Pisa�em ten m�j "wielki" programik i wszystko by�o ok. I nagle gdzie�
co� dopisa�em, �e przy _z�ej_ odpowiedzi zap�tla si�. I kurka wodna
nie mog� doj�� za skarby �wiata gdzie. Bardzo prosz� o podpowied�...
Kod:
public void setNumbers () {
Random rand = new Random();
randint1 = rand.nextInt(10);
randint2 = rand.nextInt(10);
mnoznik1.setText(String.valueOf(randint1));
mnoznik2.setText(String.valueOf(randint2));
}
private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent
evt) {
System.exit(0);
}
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent
evt) {
runda = 1;
licznik.setText(Integer.toString(runda));
setNumbers();
przyciskOK.setEnabled(true);
wynik.setEnabled(true);
wynik.setText("");
wynik.requestFocus();
licznik.setText("1");
}
private void przyciskOKActionPerformed(java.awt.event.ActionEvent
evt) {
while (runda < 21) {
int wynik1 = Integer.parseInt(wynik.getText());
if (wynik1 == (randint1*randint2)) {
ocena.setText("Poprawnie :)");
if (wynik.isBackgroundSet()) {
wynik.setBackground(Color.WHITE); };
wynik.setText("");
runda = runda + 1;
licznik.setText(Integer.toString(runda));
setNumbers();
wynik.requestFocus();
} else {
ocena.setText("�LE :(");
wynik.requestFocus();
wynik.setBackground(Color.RED);
Toolkit.getDefaultToolkit().beep();
licznik.setText(Integer.toString(runda));
}
}
mnoznik1.setText("?");
mnoznik2.setText("?");
wynik.setEnabled(false);
przyciskOK.setEnabled(false);
ocena.setForeground(Color.GREEN);
ocena.setText("Gratulacje!");
ocena.setBackground(Color.GREEN);
}
Dzi�ki
Smok.
Greg
> podnosisz warto�� zmiennej runka tylko gdy odpowiesz prawid�owo a w
> b��dnej warto�ci nie ma zwi�kszenia tej warto�ci chyba �e za�o�ysz �e
> u�ytkownik ma odpowiedzie� 21 prawid�owo. Je�li jednak nie to przesu�
> zapis runda = runda + 1 przed if(wynik1 == (randint1*randint2))
>
> Greg
W�a�nie tak. Za�o�y�em, �e u�ytkownik musi odpowiedzie� 20 razy
prawid�owo. I przy prawid�owych odpowiedziach wszystko gra, a przy
warto�ci nieprawid�owej (false dla wspomnianego IFa) program si� zap�tla.
I nie mam poj�cia czemu.
Smok.
Ja bym najpierw zachaszowaďż˝ tďż˝ linie
Toolkit.getDefaultToolkit().beep();
i sprawdzi� czy teraz b�dzie dobrze dzia�a� je�li tak to znaczy �e trzeba
spytaďż˝ google o tďż˝ linie
> Ja bym najpierw zachaszowaďż˝ tďż˝ linie
> Toolkit.getDefaultToolkit().beep();
> i sprawdzi� czy teraz b�dzie dobrze dzia�a� je�li tak to znaczy �e
trzeba
> spytaďż˝ google o tďż˝ linie
Niestety, to nie ona. Wy��cza beep i zap�tlenie nie daje efekt�w
d�wi�kowych (nie ma beepbeepbeebeep ;)) ale niestety samo zap�tlenie
pozostaje jak by�o.
Smok.
Wie� zostaje ostatnie dziwad�o:
setNumbers();
nie wiem dla czego nie generujesz nowych liczb po b��dnej odpowiedzi.
Greg
> setNumbers();
> nie wiem dla czego nie generujesz nowych liczb po b��dnej odpowiedzi.
Heh, bo musz� je generowa� w dw�ch przypadkach. Po starcie programu i po
prawid�owej odpowiedzi. Nieprawid�owa nie generuje nowych mno�nik�w, �eby
u�ytkownik musia� prawid�owo odpowiedzie� na ka�de pytanie, cho�by mia�
pr�bowa� wiele razy.
Smok.