02. juni 2001 - 19:30Der er
12 kommentarer og 2 løsninger
Program til Graphical User Interfaces?
Jeg har gennem min uddannelse arbejdet en del med java. Vi er endu ikke begyndt på at lave grafiske brugerflader, men har indtil videre lavet konsol baserede programmer.
Da jeg gerne vil i gang med at kigge på GUI, ville jeg spørge hvilket program, der er værd at kigge på til det formål. (jeg har adgang til flere (\"de gængse\") via skolen).
Jeg ville imidlertidig foretrække at skrive koden til GUI selv (og dermed netop _ikke_ bruge et bestemt program decideret til brugergrænsefladen), men er det \"dumt\"? bruger man så ikke for meget tid på detaljer der i princippet er uvæsentlige, eller er det en god ting at lære det \"fra bunden\"
Det ville jeg gerne høre jeres mening/erfaringer om/med...
Jeg mener helt klart at det er bedst at \'arbejde fra bunden\'... Tit bliver java-programmører så \'forelsket\' i GUI-generatorer, at de helt glemmer hvordan det virker \'under køleren\'....
Generelt vil jeg sige at det er meget fornuftigt at vide hvordan tingene fungerer. fx. Ved at kigge på nogle af de tutorials der ligger på http://www.java.sun.com. Der ligger nogen omkring Swing.
Når man når ind i de mere komplekse områder er det rart at have programmer som VisualAge, som man så kan autogenerere GUI, og bagefter se koden hvordan tingene hænger sammen
Jeg har selv lært GUI programming i Java \"fra bunden\", altså uden GUI generator. Dermed ikke ment at jeg syntes alt skal laves på denne måde. Man kommer nok hurtige igang med en GUI generator, men jeg vil ikke anbefale dig at bruge en GUI generator uden at du sætter dig ind i hvad det generede kode går. Jeg bruger selv GUI generatorere til at lave skabeloner, og derefter tilpasser jeg det selv.
Hver opmærksom på at hvis du vælger en GUI generator så kan det være det pågældende værktøj kræver at koden har en bestemt struktur. Kan bl.a. give problemer hvis man ændre i det generede kode og derefter prøver at få det frem i GUI generatoren. Det er bl.a. tilfældet med JBuilder, men hvis man er opmærksom på faldgruberne så er det ikke noget problem.
Et råd til når du skal igang med at bygge GUI komponenter, sæt dig ind i komponentarkitekturen JavaBeans, da de fleste Java GUI værktøjer understøtter disse.
Hvis du bruger en alm. tekst editor idag så vil jeg stadig anbefale dig at bruge et Java udviklingsværktøj som f.eks. JBuilder fordi der har mange andre forcer end den indbyggede GUI generator, f.eks. debugger og en af mine ynglings, liste over metoder når man trykker punktum efter et objekt eller en klasse (ja, jeg kender ikke lige navnet på denne funktion).
mpultz >> tjo... Men f.eks. med Allaire Kawa 5.0 har man i dag også debugger og code completion (navnet på funktionen in question :-) ...
Derudover er Kawa 5.0 hurtigere at bruge (til normal kodning, dvs. ikke-GUI-kodning) end f.eks. JBuilder. Og man får valget mellem at bruge SUN JDK\'ens egen java-compiler og f.eks IBM\'s JIkes (som er _meget_ hurtigere end Suns egen.
Nu nævnte jeg JBuilder som eksempel. Jeg har ikke erfaring med Allaire Kawa 5.0 men du kan have ret i at det er hurtigere end JBuilder. JBuilder kan godt være lidt tung at arbejde med, men den er jo også skrevet i Java (-:
Bare for en ordens skyld. I JBuilder kan du også vælge en JDK efter eget valg. Men man kan ikke skifte dynamisk, hvis det altså er det du mener man kan med Kawa.
Det jeg mener, er at man selv vælger programmet, som skal compilere ... Man kan også vælge flere JDK\'ere, hvis man har flere installeret på computeren
(jeg bruger f.eks. Jikes kompiler, og har JDK 1.3 rev. 2 som standard JDK - men har også JDK 1.2 liggende, i tilfælde af at jeg skal lave noget til skolen, samt Servlet-kittet, da jeg fumler lidt rundt med at lære at lave servlets. Derudover har jeg JUnit koblet på, så jeg kan lave automatiseret Unit-testning :-)
Søren, jeg er nysgerring, hvordan virker code completion så i Kawa? Har du f.eks. Java 2 funktionalitet til rådighed selv om du har Jikes oversætteren aktiv, eller er det baseret på hvilken JDK du har aktiv?
Efter et nærmere kig på JBuilder så er lignende funktionalitet faktisk til stede, bare ikke i foundation versionen (gratis versionen) som jeg har, men i enterprise og professional versionerne.
Hmm... af en eller anden grund er mit svar fra i eftermiddags til mpultz ikke kommet på ????...
Code-completion i kawa kan aktiveres på to forskellige måder : - En boks kan komme frem, hvergang der bliver tastet et \'.\' (dot-operator) - Efter \'.\' kan man trykke [ctrl]-[space], som så vil bringe metode-boksen frem...
De metoder, man får stillet til rådighed, er de metoder og atributter, som objektet kan tilgå (fra egen klasse, samt alle super-klasser). Dvs. den JDK man bruger.
Lige en lille kommentar angående oversætter/kompiler : 1) Det er lige meget, hvilken kompiler du bruger, _FUNKTIONALITETEN_ er den samme (er baseret på din JDK\'s SDK og Runtime Library). Dvs. at man ikke skal tage forholdsregler, eller gå på kompromis med funktionalitet pga. valg kompiler. Den eneste forskel er i kompileringshastighed og kode-optimering (Byte-code, that is)
2) Jikes følger ikke med Kawa - faktisk kan man koble _ALLE_ kompilere til Kawa, så længe at de findes som .exe-fil. Jikes kan dl\'es fra IBM\'s hjemmesider
Søren, dvs. hvis du har et Vektor objekt så vil add metoden (som er Java 2 funktionalitet) være tilrådighed vha. code completion uafhængigt af om det er en Java 1 eller Java 2 oversætter der er aktiv. Det ville ellers være \"smart\" (dårligt ordvalg -:) hvis funktionaliteten var knyttet til hvilken oversætter der var aktiv.
Jeg kender udemærket Jikes, hurtig oversætter med mange muligheder.
Hvad code-completion-dialogen svarer tilbage er baseret på, hvilken JDK du er igang med at bruge... Jeg vil mene at, hvis man bruger en prmitiv compiler, som er bygget til at compilere f.eks. JDK 1.1.8, og man samtidig bruger JDK 1.3 så er man lidt galt afmarcheret :-/....
Det samme problem har du f.eks. med JBuilder ... Der retter CC sig også efter hvilken JDK du bruger, og ikke efter compiler....
Det ville være smart, hvis CC kunne alarmere, hvis man skrev et statement, som den valgt compiler _IKKE_ kunne udføre, men problemet er at compilerene ikke kan give information omkring, hvad de kan og hvad de Ikke kan .... - Derimod kan man med JDK\'en slå alle former en metode f.eks. kan bruges med op....
/Søren Munk Skrøder
Synes godt om
Ny brugerNybegynder
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.