Szerintetek mi a gond ezzel a kóddal?
Hiába nyomkodom a gombokat nm történik semmi pedig nem ad hibát a fordító szóval gondolom valami logikai baki.
(egyébként látom a képen h van egy fölösleges q függvény de ezért nem csinálom újra a képet :D)
De miért nem illeszted be a kódot? Persze nem ide, hanem pastebin-re kéne, és sem neked, sem nekünk nem kéne screenshotokkal szenvednünk. :)
Egyébként meg ahogy látom az actionPerformed-ben az event.getActionCommand()-ból indulsz ki, és aszerint döntöd el mit csináljon. Én első lépcsőben a helyedben kiíratnám, hogy ez a metódus mit ad vissza.
Egyébként meg nagyon úgy nézem, hogy teljesen mindegy is mit csinálsz abban az actionPerformed-ben, mert módosítottad a paraméter listáját. A hiba az, hogy nem kéne, mert nem azt fogja hívogatni. Hanem azt az actionPerformed-et, amelyik az ActionListener interface-ben van és definiálnod kéne. Ahogy látom te szép üresen hagytad. Ezt tessék kitölteni megfelelően és működni fog. :)
Megpróbálom. :)
Nos, ahhoz hogy egy gomb csináljon valamit, ahhoz ActionListener-t kell hozzákötni.
Az ActionListener egy interfész, tehát nincs benne kód, csak metódusfejléc(ek), ez(eke)t neked kell megvalósítanod.
Egyetlen metódust kell megadni, ez a void actionPerformed(ActionEvent e).
Ez a metódus fog lefutni, ha a gombbal valami történik, és az 'e' paraméter írja le neked, hogy milyen esemény történt - ezt a paramétert tudod vizsgálgatni a metódusban és ez alapján tudsz dönteni, mit csinálj.
Például az actionCommand alapján dönthetsz, hogy milyen matematikai műveletet végezz (bár én ezzel az actionCommand-el még nem dolgoztam).
Amivel ugye neked trükköznöd kell, hogy az actionPerformed megkapja a két operandust a matematikai műveleteidhez.
Erre több megoldás is van. Vagy minden gombhoz saját ActionListener-t rendelsz*, vagy valamilyen módon átadod a CalculatorRun-nak a TextBox-aidat - például a konstruktorban. Ekkor az actionPerformed hozzájuk fog férni, tudja őket olvasni, módosítani. Ezt a konstruktort pedig meghívhatod az ablakod (Számoló) konstruktorában.
*: inline is lehet:
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// ...
}
});
Remélem segítettem. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!