Avatar billede jespersahner Nybegynder
31. august 2005 - 10:24 Der 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.
Avatar billede kalp Novice
31. august 2005 - 10:26 #1
sæt lytteren til din GUI?
Avatar billede jespersahner Nybegynder
31. august 2005 - 10:35 #2
->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.
Avatar billede kalp Novice
31. august 2005 - 10:51 #3
så burde det næsten være muligt at knytte lytteren til din JFrame.. men kommer også an på hvilke andre komponenter der er placeret i den.
Avatar billede arne_v Ekspert
31. august 2005 - 10:51 #4
hvis det er en AWT eller Swing app så er det jo helt ligesom hvis
det var en Applet eller JApplet

hvis det er en console app, så er det nok svært
Avatar billede jespersahner Nybegynder
31. august 2005 - 11:12 #5
Jeg forklarer mig måske lidt dårligt her.

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.
Avatar billede arne_v Ekspert
31. august 2005 - 11:15 #6
kalde andetsteds fra ? fra en anden JVM ? via RMI ?
Avatar billede jespersahner Nybegynder
31. august 2005 - 11:37 #7
->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.

Kan dette input bruges til noget? :-)
Avatar billede arne_v Ekspert
31. august 2005 - 12:32 #8
umiddelbart lyder det som du vil have en GUI client som via RMI påvirker
et server program som kører i baggrunden

men jeg er ikke sikker
Avatar billede jespersahner Nybegynder
31. august 2005 - 12:50 #9
->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 :-)
Avatar billede arne_v Ekspert
31. august 2005 - 12:55 #10
en tråd kører i samme JVM som GUI

du kan godt lave en tråd som kører i en uendelig løkke hvor den
henter tasks fra en kø og processer dem

en RMI server kører i en seperat JVM - den laver ikke noget førend den bliver
kaldt
Avatar billede jespersahner Nybegynder
31. august 2005 - 13:18 #11
->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.
Avatar billede arne_v Ekspert
31. august 2005 - 13:39 #12
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester