03. maj 2008 - 12:00Der er
8 kommentarer og 2 løsninger
Problem med Listeners
Jeg har oprettet et JTextField, som skal skifte farve efter hvilket tal, der står i det - f.eks. hvis der står "13", skal det blive gult og hvis der står "34", skal det blive rødt.
Til det formål har jeg lavet en "KeyListener", der tjekker tallet, hver gang man skriver i det. Det virker fint, men jer har også indsat en knap, der udfylder mit JTextField med et tilfældigt tal mellem 1 og 10.
Når man har trykket på knappen, bliver feltet udfyldt, men den skifter ikke farve, da man ikke selv har udfyldt det (altså trykket på tastaturet).
Jeg prøvet med "TextListener", men jeg kan ikke få det til at virke.
Nogen der har en idé? (Håber at spørgsmålet er forståligt!)
Hvorfor ikke lade knap koden og din key listener begge kalde en metode som håndterer farve ?
Synes godt om
Slettet bruger
03. maj 2008 - 17:15#2
Det havde jeg sådan set også tænkt mig, men i det fulde program kommer der til at være 10-20 knapper, der udfylder med tal og det kunne være smart, hvis det kunne gøres på en anden måde.
Lav en classe som extender JTextField, set et nyt Document, virker uanset hvordan teksten skrives (setText(), skives eller paste) Nedenstående kræver prefix '-', men tilret selv
Jeg fandt ud af, at "JTextField" ikke har en "addTextListener"-metode - Det er "TextField" (uden J), der har det. Tilgengæld har "JTextField" en "CaretListener".
"CaretListener" virker fint og skifter farven, uanset om den bliver skrevet, pastet eller sat ind med "setText(). Så hvis i begge lægger et svar, deler vi lige over.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.