28. marts 2003 - 13:47Der er
10 kommentarer og 1 løsning
Opdatering af Panel baggrund
Hejsa
Jeg har en metode, der ændrer på nogle knapper i et Panel (fjerner de eksisterende og indsætter nogle nye). Lidt pseudokode:
// Nyt Panel skabes og gemmes i en member-variabel i klassen. Private java.awt.Panel buttonsPanel = new Panel();
buttonsPanel.removeAll();
while (<en betingelse>) {
Button but = new Button(name); buttonsPanel.add(but);
}
buttonsPanel.validate();
Problemet er at baggrunden af Panel'et ikke opdateres ved kald af buttonsPanel.validate(), hvilket bevirker at man stadig kan se de gamle knapper - indtil man flytter med musen eller noget lignende.
du skal bruge en button der er sub-klasse af java.awt.Component, men ikke java.awt.Button. Hvis du laver det i AWT skal du altså selv lave en Button der forlænger java.awt.Button. Alternativt bruge Swing
Det ér en applet, der skal kunne køre uden download af jvm - derfor awt. Men man må da kunne få Panel'et til at clear'e sin baggrund, for den gør det jo selv når man bevæger musen hen over det. Kan man ikke clear'e baggrunden manuelt så?
jeg skal lige være med. vil du have et Panel, der ikke er opaque? Altså der tillader gennemsigtige pixels? Jeg er ikke helt sikker på jeg er med desværre.
Ok, et Panel er åbentbart per default gennemsigtigt, så når jeg udskifter de gamle knapper med nogle nye, så kan man stadig se de gamle fordi baggrunden ikke er blevet slettet. Så det jeg egentlig eftelyser er en måde at slette beggrunden på i det Panel, jeg indsætter mine knapper i.
Forresten =maddog=, min button er en java.awt.Button. Alt er AWT da det som sagt er en applet, der skal kunne køre i alle browsere uden download af diverse extra libs. På mac, unix, windows, etc.
noget i retning af det her? www.dsr.kvl.dk/~maddog/Exp334465.java bare kompile og kør og sig om det er på sporet. Hvis det er så prøv med LWButton fra denne fil i stedet for Button.
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.