Java GlassPane samt paint,repaint,update
Hejsa.Jeg arbejder på en tegneapplikation der skal kunne tegne figurer på et jpanel. de skal også kunne flyttes hvis man trækker i dem, og man skal helst kunne se dem følge musen når man trækker.
Mit problem er at programmet bliver meget sløvt hvis jeg har indsat mange figurer. Det skyldes at jeg kalder repaint på mit jpanel hver gang der sker noget, fx at man trækker i én figur. repaint sørger så for at tegne alle figurer, altså også dem der ikke bliver berørt!
Istedet vil jeg gerne gentegne figuren der bliver trukken, og lade alle andre figurer være som de er.
Men det er absolut nemmere sagt end gjort. Hvis jeg blot gentegner den pågældende figur forsvinder de andre nemlig! Hvis jeg kun gentegner det område hvor figuren er (vha. repaint(rect)), så trækker figuren et slør og overtegner iøvrigt andre figurer hvis den trækkes henover.
Nogen der har nogen ideer til hvordan det kan gøres?
Jeg har været inde over at anvende et Jcomponent og sætte den som glasspane i min frame. Den skulle så indeholdende de figurer der bliver trukket. Min ide var at man så kunne kalder repaint på glasspane, og da den er gennemsigtigt ville man få tegnet de figurer man trækker, mens det nedenunder ville være status quo. Det kan jeg dog ikke få til at virke, da repaint på mit glasspane (en Jcomponent) automatisk sletter baggrunden!! det skyldes vist at JComponent er lightweight og derfor ikke anvender update, men istedet går direkte til paint - og i update slettes baggrunden ikke automatisk, det gør den i paint!
Håber meget nogen kan hjælpe
Mvh Mathias
