Ik ben nog steeds bezig met m'n patientenprogje en dat werkt op zich prima, ik had eerst een CSV-bestand met 40 patienten, daar werd wat op berekent en dan krijg je een 40 bij 40 blokjespatroon (heatmap) van per blokje 15 pixels. Dus je krijgt gauw een scherm gevuld met 40x15 = 600 pixels. Dit tekende ik allemaal in een 'normaal' JPanel. Nu heb ik een ander CSV-bestand gekregen en daar staan 240 patienten in. Je raadt het al, dit betekent 240x15 pixels = 3600 pixels breed en hoog. Past niet binnen een normaal venster.
Het tekenen ging me ook niet echt snel genoeg, want hij leest dus ruim 240x240 velden in met waarden (en doet daar ook nog een berekening over). Zodra je met een ander Windows-venster over de JPanel heen gaat, wordt de paintComponent aangeroepen en gaat ie weer alle 240x240 vakjes opnieuw tekenen (+berekenen).
Op zo'n moment staat de applicatie 2 sec. ongeveer helemaal stil.
Binnen die paintComponent worden dus al die 240x240 velden doorlopen en getekent.
Belangrijk: Is het mogelijk om het plaatje 1x te laten tekenen en dat vervolgens in een soort van buffer op te slaan zodat ie in een keer de buffer opnieuw terugdumpt ipv alles opnieuw te berekenen en tekenen?
Minder belangrijk: nu wilde ik een JScrollPane gebruiken ipv een JPanel om daar binnen te tekenen, is het mogelijk om eerst alles in een aparte buffer te tekenen en die dan vervolgens binnen de JPanel te laten zien?
Ik heb het idee dat ik niet efficient bezig ben iig, misschien dat andere mensen mij kunnen verlichten met wat tips/hints.
update: ik heb toch wat gevonden, jpanel kan in een jscrollpane worden gebruikt, ga ik dat nu even verder uitzoeken; nu nog de vraag hoe ik efficienter kan tekenen ipv 2 sec applicatie-lockup
Het tekenen ging me ook niet echt snel genoeg, want hij leest dus ruim 240x240 velden in met waarden (en doet daar ook nog een berekening over). Zodra je met een ander Windows-venster over de JPanel heen gaat, wordt de paintComponent aangeroepen en gaat ie weer alle 240x240 vakjes opnieuw tekenen (+berekenen).
Op zo'n moment staat de applicatie 2 sec. ongeveer helemaal stil.
Binnen die paintComponent worden dus al die 240x240 velden doorlopen en getekent.
Belangrijk: Is het mogelijk om het plaatje 1x te laten tekenen en dat vervolgens in een soort van buffer op te slaan zodat ie in een keer de buffer opnieuw terugdumpt ipv alles opnieuw te berekenen en tekenen?
Minder belangrijk: nu wilde ik een JScrollPane gebruiken ipv een JPanel om daar binnen te tekenen, is het mogelijk om eerst alles in een aparte buffer te tekenen en die dan vervolgens binnen de JPanel te laten zien?
Ik heb het idee dat ik niet efficient bezig ben iig, misschien dat andere mensen mij kunnen verlichten met wat tips/hints.
update: ik heb toch wat gevonden, jpanel kan in een jscrollpane worden gebruikt, ga ik dat nu even verder uitzoeken; nu nog de vraag hoe ik efficienter kan tekenen ipv 2 sec applicatie-lockup
[ Voor 14% gewijzigd door Tjeerd op 25-05-2004 10:36 ]
www.tjeerd.net - To repeat what others have said, requires education, to challenge it, requires brains.