31. august 2005 - 10:24Der er
11 kommentarer og 1 løsning
Tilføje lytter uden at lave applet
Jeg har et alm. Java-program, hvor jeg blot ønsker at tilføje en lytter, som f.eks. reagerer på et muse-klik og derefter skriver til System.out.
Når jeg stiller spørgsmålet er det, fordi jeg ønsker den simpleste løsning, hvor jeg ikke nødvendigvis skal lave mit almindelige Java-program om til en applet.
->kalp: Ja, hvis jeg forstår dig ret, genererer min GUI en hændelse, som mit Java-program skal reagere på. Jeg har derfor brug for at tilføje en lytter til programmet.
Jeg har et alm. Java-program med main()-metode osv., og jeg ønsker egentlig bare, at starte dette program op i "dvale", så det kan kaldes andetsteds fra. Min main()-metode skal således ikke afsluttes.
->arne_v: Jeg ved faktisk ikke, om jeg er i stand til præcist at besvare dette.
Jeg udvikler i NetBeans. I NetBeans har man mulighed for at tilføje "moduler" (modules), som kan være knapper, menuer osv. I mit tilfælde har jeg en knap, som helt enkelt modtager et input fra editoren og derefter skal foretage behandling af dette. Behandlingen skal ske i et andet (kørende) program (project) uden for modulet. I princippet kan jeg godt bare kalde de relevante klasser i mit program (uden at dette kører) inde fra modulet, men opsætning af classpath osv. i relation til modulet er temmelig tricky, og jeg anvender en del dynamisk kompilering og class-loading, så det er svært at få skruet rigtigt sammen. Herudover er det nok dårligt design at inkludere hele mit program i modul-koden.
Jeg har derfor den tanke, at mit modul skal udføre så lidt som muligt, dvs. blot tage imod input fra editoren og derefter sende dette videre til mit kørende program, hvor jeg har styr på classpath osv. Mit program skal derfor startes op på "sædvanlig vis" og vente på input udefra.
->arne_v: Nej, forstås, det er temmelig indforstået.
Man kan sige at jeg har behov for at starte et program op, som venter på at blive kaldt. Indtil programmet bliver kaldt, skal det ikke foretage sig noget. Det smager selvfølgelig alt andet lige af en applet.
Når jeg ikke ønsker en applet, er det fordi jeg tænker, at udviklingsværktøjet i sig selv er en grafisk applikation. Man kan derfor sige, at jeg har behov for at føje den funktionalitet, som en applet har, til mit program, uden at det er en applet.
Kunne programmet være en tråd, som startes/stoppes af min knap? Hvordan sikrer jeg i givet fald, at programmet startet op ved kald af main() så at sige ikke kører færdig? Måske rent sludder det sidste :-)
->arne_v: RMI-tankegangen er måske slet ikke så tosset. Jeg har (måske) dybest set brug for 2 kørende sessioner for at holde det hele adskilt. Smid gerne et svar.
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.