Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Lihtsa vastusega raske küsimus ActionListeneri kohta Javas märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Azatris
HV veteran
Azatris

liitunud: 06.02.2006



Autoriseeritud ID-kaardiga

sõnum 12.03.2012 02:45:19 Lihtsa vastusega raske küsimus ActionListeneri kohta Javas vasta tsitaadiga

Kood -> http://pastebin.com/fa7iRaSY Tegu on kooliprojekti jaoks graafikalise kasutajaliidesega. Esimese rea eemaldades saab ise ka liidest näha, kompileerides ja jooksutades, et parem pilt asjast saada. Kood peaks iseenesest üsna loetaval kujul olema. Suur osa moodustab sellest lihtsalt asjade pealeladumine frame'le.

Ühesõnaga selline probleem, et rida 159. on vigane. Eclipse ütleb: "Cannot refer to a non-final variable tglbtnPlay inside an inner class defined in a different method". Kuidas ma saaks referenceda seda tglbtnPlay objekti, mis on loodud initialize() käigus? Kas see on üldse võimalik? Kas on workarounde?
Mida ma selle koodi osaga saavutada tahan, on disableda nupp, kui sellele peale vajutada (kui see varem on enabletud). Muidugi peale seda kirjutaks ka mingi konkreetse koodijupi, mille jaoks see nupp üldsegi seal on.
Andeks napisõnalisuse poolest, aga ma küsin foorumis midagi sellist esimest korda. Kõik küsimused on oodatud.

Tänud!
Kommentaarid: 38 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 12.03.2012 08:02:55 vasta tsitaadiga

Kompilaator on sulle põhimõtteliselt vastuse ju ette öelnud. icon_smile.gif
tsitaat:

Cannot refer to a non-final variable tglbtnPlay inside an inner class defined in a different method
Ühesõnaga kirjelda muutuja tblbtnPlay real 153 koos final võtmesõnaga.
java:
  1. final JToggleButton tglbtnPlay = new JToggleButton("Play");

Esmapilgul diagonaalis vaadates tundub, et sul tuleb ka hiljem samatüübilisi vigu veel. Sedalaadi konstruktsioonides peavadki anonüümse klassi sees kasutatavad muutujad olema final võtmesõnaga koos kirjeldatud.

_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Azatris
HV veteran
Azatris

liitunud: 06.02.2006



Autoriseeritud ID-kaardiga

sõnum 12.03.2012 14:41:13 vasta tsitaadiga

Imeline! Tänud! beer_yum.gif

Aga mul tekkis kohe teine probleem. Nagu kui ma vajutan ühele nupule, mis enabletud, siis ideaalis disableb selle ja enableb kõik muud. Kuid reaalsuses eelmine disabletud nupp on nüüd mingis "vaheseisundis", mis ei ole visuaalselt enabletud. Korra peale klikkides sellele läheb nupp õigesti enabletuks. Kuidas sellisest kummalisest käitumisest lahti saada? On ju ilmselge, mida ma saavutada tahan.

Lihtsaim on vist koodi ise jooksutada ja vaadata. http://pastebin.com/B9qNBzY1
Jälgi kas siis neid algoritminuppe või play/pause/stop käitumist. Imelik.
Kommentaarid: 38 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 34
tagasi üles
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 12.03.2012 16:13:50 vasta tsitaadiga

Peale vaadates tundub, et antud käitumine on JToggleButton puhul täiesti korrektne. Ma arvan, et sa oma soovitud efekti saavutamiseks peaksid kasutama tavalisi JButton nuppe. NB! Vaata siis ka kõik isSelected() meetodi kasutamised üle - tavalise JButton korral see midagi mõistlikku ei anna.
_________________
Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist.
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Lihtsa vastusega raske küsimus ActionListeneri kohta Javas
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.