Kagee Skrevet 8. juni 2007 Skrevet 8. juni 2007 (endret) Jeg la merke til at det i jarfilene jeg lagde fra Eclipse var med en del underlige filer, og når jeg tittet i workspace'et så jeg at de lå der også. De heter classname$1.class, classname$2.class o.l. Disse blir automatisk med når jeg lager JAR-fila, og jeg kan ikke fjerne dem (hvis jeg fjerner dem fra workspace klikker Eclipse, og JAR-filene vil ikke kjøre hvis jeg fjerner dem med 7-zip. Hva slags filer er dette? Endret 10. juni 2007 av Kagee
___ Skrevet 8. juni 2007 Skrevet 8. juni 2007 (endret) Hvis du har anonyme innerclasses så får du class-filer av denne sorten. Du skal med andre ord IKKE fjerne dem. Edit: Det er IKKE eclipse som produserer dem, men javakompilatoren. Werner Endret 8. juni 2007 av wernie
Kagee Skrevet 9. juni 2007 Forfatter Skrevet 9. juni 2007 (endret) Nydelig svar, bare et problem: Jeg er nybegynner, og kjenner ikke til begrepet "anonyme innerklasser". Ikke tror jeg at jeg bruker dem heller.... Edit: Googlet det ... stemmer det at jeg opretter en "anonym innerklasse" hver gang jeg bruker "new"? I så fall er jo disse filene et krav med en gang man bruker Swing o.l .... Endret 9. juni 2007 av Kagee
pgdx Skrevet 9. juni 2007 Skrevet 9. juni 2007 Nei, men lager du en lytter, kan du implementere den på måten ala dette: knapp.addActionListener(new ActionListener() { public void actionPerformed( ActionEvent e ) { gjoerDetteNaarKnappTrykkes(); } } );
Kagee Skrevet 9. juni 2007 Forfatter Skrevet 9. juni 2007 (endret) Jeg skjønte ikke helt hva du svarte på, men jeg gjorde som du foreslo. Har fortsatt filene (hadde vært fint uten) Kan noen forklare med hva disse anonyme klassene er, eventuelt peke de ut her: http://diskusjon.no.pastebin.com/925505 Endret 9. juni 2007 av Kagee
gunnard Skrevet 9. juni 2007 Skrevet 9. juni 2007 Mellom linje 65 og 85 er en klasse av typen ActionListener, og en annen mellom 92 og 97. Som du ser lages disse ved: <objekt>.<metode>(new <klassenavn>() { //variabler og metoder }); der "//variabler og metoder" er koden til den anonyme klassen av <klassenavn> er. Alternativt kunne du laget en egen klasse, dersom <klassenavn> er ActionListener som her: class Lytter implements ActionListener { //samme kode, public void actionPerformed(ActionEvent e) må implementeres } og skrevet i stedet: <objekt>.<metode>(new Lytter()); Håper det hjalp
pgdx Skrevet 10. juni 2007 Skrevet 10. juni 2007 (endret) Jeg skjønte ikke helt hva du svarte på, men jeg gjorde som du foreslo. Har fortsatt filene (hadde vært fint uten) Kan noen forklare med hva disse anonyme klassene er, eventuelt peke de ut her: http://diskusjon.no.pastebin.com/925505 8820412[/snapback] Det jeg «foreslo» var hvordan en anonym indre klasse skrives. Som du ser, har den ikke noe navn. Hvorfor vil du kvitte deg med filene? .class-filene er helt nødvendig for å kjøre programmet, jeg skjønner ikke hva problemet er. Men du kan selvsagt gjøre alle anonyme indre klasser til vanlige eksterne lyttere. Da må du lage en klasse på denne måten: class MinLytter implements ActionListener { public void actionPerformed(ActionEvent e) { denneMetodenSkalGjoeres(); } } Og så må du legge de til på knappen slik: knapp.addActionListener(new MinLytter()); , Du må nok eksperimentere litt med konstruktører og referanser til objekter for å få det til å virke på samme måte, men det er ikke noe problem. Endret 10. juni 2007 av pgd
Kagee Skrevet 10. juni 2007 Forfatter Skrevet 10. juni 2007 Da "exiter.class" og "ipbox.class" dukket opp i worspacet, falt noen biter på plass. Takker og bukker
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å