ELR Skrevet 18. mai 2005 Del Skrevet 18. mai 2005 (endret) Har denne koden i en GUI (JDialog). JButton okKnapp = new JButton("OK - Lagre"); okKnapp.addActionListener(this); JButton avbrytKnapp = new JButton("Avbryt - ikke lagre"); avbrytKnapp.addActionListener(this); ..... public void actionPerformed(ActionEvent e){ if(okKnapp == e.getSource()){ out.println("OK-knapp virker"); } if(e.getSource() == avbrytKnapp){ dispose(); System.exit(0); } } Problemet er at den reagerer ikke. Prøvde med å legge inn en "else"-setning her, og da skrev den tekst til terminalen. Med andre ord, den registrerer at jeg trykker på knappene. Slik som det står nå skjønner den ikke hvilken hendelse som skjer. Noen som skjønner hva som kan være galt? Endret 18. mai 2005 av Pitbullo Lenke til kommentar
bakrull Skrevet 18. mai 2005 Del Skrevet 18. mai 2005 Er ikke helt sikker, men prøv å cast e.getSource() til JButton, siden det nå er Object. eks: if(okKnapp == (JButton) e.getSource()){ out.println("OK-knapp virker"); } Lenke til kommentar
ELR Skrevet 18. mai 2005 Forfatter Del Skrevet 18. mai 2005 (endret) Heisann igjen. Det virker fremdeles ikke.... Prøver å skrive ut e.getSource() og får da all informasjon om knapp som blir trykket. Finner i den listen som skrives ut navnet på knappen (teksten på den), samme gjelder avbrytknappen. Denne teksten skrives ut: javax.swing.JButton[,0,0,195x25,alignmentX=0.0,alignmentY= *masse blabla* selectedIcon=,text=OK - Lagre,defaultCapable=true] Prøvde å legge inn en else-setning under if. Denne teksten skrives til skjerm nå en av knappene trykkes, slik at jeg vet den oppfatter at knappene trykkes. Den skjønner bare ikke sammenlikningen. Endret 18. mai 2005 av Pitbullo Lenke til kommentar
bakrull Skrevet 18. mai 2005 Del Skrevet 18. mai 2005 Det å caste fungerer hos meg. Mulig at du har noe kluss med tilgangen til objektene av JButton. Sikker på at metoden actionPerformed har tilgang til objektene som du sammenligner ? Lenke til kommentar
ELR Skrevet 18. mai 2005 Forfatter Del Skrevet 18. mai 2005 Takker for hjelpen! Fant ut av det til slutt nå. Feilen er så dum at jeg er flau, og rød i toppen nå. Til mitt forsvar så lå feilen i toppen av koden, så jeg kikka ikke der da knappene gav respons. Slik så det ut: private JButten okKnapp, avbrytKnapp; JButton okKnapp = new JButton("OK"); JButton avbrytKnapp = new JButton("Avbryt"); Ser du? Dobbel dekklarering....... Kompilator sa ikke ifra om dette, og knappen fungerte da jeg brukte en ekstern lytter. Derfor ble ikke dette sjekka. Prøvde å skrive ut knappereferansen, men fikk kun "null" da. Igjen! Takk for hjelpen! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå