01. august 2004 - 10:54Der er
14 kommentarer og 1 løsning
Skifte skærmbillede
Darvs!
Jeg sidder og roder med en applet, hvor man først skal logge in, hvorefter at (når man er logget ind) skal skifte skærmbillede. De to forskellige skærmbilleder er er opbygget af awt komponenter.
Jeg har indtil videre opbygget det på den måde at jeg har hovedklassen og to andre klasser, der hver udgør skærmbillederne, og add'er komponenterne til appletens container. Jeg regnede så med at lave en show() og hide(), sådan at man kan skifte mellem de to skærmbilleder.
Er det en smart måde at gøre det på? Og hvordan skjuler man komponenterne igen og gør dem inaktive?
Og bonusspørgsmålet: Jeg vil også gerne tegne nogle rammer og bileder osv... Men når jeg definerer paint() i appleten, så tegnes der ikke en skid så længe at komponenterne tegnes. Jeg mener at have læst at man skulle løse dette på en eller anden måde, men jeg kan ikke huske hvordan... Hvordan?
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
Slettet bruger
01. august 2004 - 14:00#1
Mht. 1. spørgsmål, så er det ikke nok at regne med at kunne bruge show() og hide()-metoderne, du skal (efter min mening) bruge en layoutmanager der gør at du kan skifte imellem de 2 "skærmbilleder", hertil er CardLayout ideel.
Mht. 2. spørgsmål, når du vil definere paint-metoden i en applet, skal du huske at kalde super.paint()-metoden, altså noget lignende dette:
public void paint(Graphics g) { super.paint(g); // Din "paint-kode" kommer her... }
Jeg håber jeg har forstået dit spørgsmål korrekt :-)
Det med cardlayout var en rigtig god ide! skidesmart...
...men! Jeg kan sgu ikke få paint() til at virke - det er som om at komponterne overskriver det tegnede, for hvis jeg forhindrer initialiseringen af dem, så tegner den pænt en streg...
Synes godt om
Slettet bruger
01. august 2004 - 17:01#5
Jamen....hov!
Du kan jo ikke tegne på applet'en, og så tilføje komponenter ovenpå den og forvente at de ikke dækker over det tegnede. Hvis du vil ha' tegnet på applet'en, ovenpå komponenterne, så skal du overskrive komponenternes paint-metoder.
ja ok - men hvordan fanden tegner jeg med paint()?!!
Det er jo det der er problemet...
Jeg har bogen "Objektorienteret programmering i JAVA" af Jakob Nordfalk - i den laver han et eksempel hvor han både tegner og bruger komponenter. Han bruger i det eksempel do Swing komponenter og det er ikke en applet men et Frame vindue... men måden han gør det på er at han definerer sin egen paint() der kalder paint() i superklassen før han tegner selv...
Hmm - jeg prøver at se om man kan tegne på et komponent ved at definere dens paint-metode... ellers så bruger jeg sgu swing - syntes bare at det kunne være smart med platformsdefinerede komponenter, når jeg alligevel kun skal bruge sådan nogle simple nogle som Button, Panel, Textarea...
Jeg har fundet ud af at for at tegne på awt komponenter, så skal man tegne i Canvas komponenten... ellers vil det ikke du...
Men tak for hjælpen - nu vil jeg vurdere om jeg vil bruge Canvas eller swing...
Præmien går derfor til corholio... ;)
Synes godt om
Slettet bruger
03. august 2004 - 18:33#15
Så takker jeg for pointene :-)
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.