27. februar 2003 - 17:17Der er
6 kommentarer og 1 løsning
JInternal Frame og JColorChooser
Jeg har en JInternalFrame, med en JTextPane indeni, jeg kan vælge baggrundsfarven på, via en JColorChooser....Jeg kan godt ændre baggrundsfarven uden problemer, men der hvor JColorchooseren har været er der et stort desktop farvet område der ikke forsvinder før jeg har lavet et par mellemrum i JTextPane´n
Håber i forstår hvad jeg mener ellers spørg....
Jeg har prøvet med alle mulige former for updateUI() og repaint() på både JTextPane og JInternalFrame og JDesktopPane
Manuelle og semi-automatiske strategier for identitetsstyring virker - lige indtil nogen beder om dokumentation. For at undgå denne fare har DKTV taget kontrol over sin identitets- og adgangsstrategi.
når du viser JColorChooseren skal du angive hvilken komponent er der dets "anker". Dette komponent vil (så vidt jeg husker) få kaldt sin revalidate() metode så dirty regions bliver gentegnet. Nu kan det jo faktisk godt være at de rigtige områder ikke bliver sat som dirty og derfor ikke gentegnet, men jeg tror du ikke har sat den rigtige modale komponent. Swing gentegner ikke alting ligesom AWT. Det er forhodsvist "intelligent" og nøjes med at registrere hvilket områder der ændrer sig og gentegner derfor kun disse. Problemet er hvis de rigtige områder ikke bliver sat. Hvis du kalder repaint bør du bruge metoden der tager et Rectangle objekt som argument, fremfor metoden uden argument. Med dette Rectangle objekt angiver du hvilke områder der er ærdret (dirty) og har brug for gentegning.
du kan evt. bruge metoden getBounds til hurtigt at estimere hvilken region den pågældende komponent dækker. Rectangle dirty = internFrame.getBounds(); myFrame.repaint(dirty);
Jeg har lavet et et eksempel, hvor jeg har prøvet at lade både den aktive JInternalFrame og ejer-JFrame være anker komponenter til JCholorChooseren. I begge tilfælde får hele JTextPane't farven der er valgt?!
[citat/mig selv] når du viser JColorChooseren skal du angive hvilken komponent er der dets "anker". Dette komponent vil (så vidt jeg husker) få kaldt sin revalidate() metode så dirty regions bliver gentegnet. [citat/slut] .. men viht skal naturligvis have hele potten. Det var ham der gad sætte sig ned og lave en model der dur.
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.