Hallo zusammen,
ich habe vermehrt gelesen, dass man immer alle Zeichnungen in paintComponent machen soll.
Leider hatte ich das noch nicht gelesen, als ich mein Programm (einen Plotter für ein EKG-Signal) geschrieben habe und habe deshalb mit getGraphics gearbeitet.
Das ganze funktioniert allerdings trotzdem und ich habe jetzt noch ein paar Fragen:
Also erstmal, was spricht dagegen, das mit getGraphics zu machen, das Hauptargument was ich gelesen hatte war, dass es dann nicht neu gezeichnet wird, aber ich das so gemacht, das ein Timer laufend die neuen werte zeichnet und das ich trotzdem paintComponent benutze und nur dann wirklich alles neu zeichne und ansonsten nur das was neu kommt, weils sonst extrem flackert.
Ist das so nicht sinnvoller?
Also so wie ich das verstehe, macht man das mit der paintComponent methode so, dass immer alles neu gezeichnet wird, ich erneuere mit 25Hz also 40 Bildern / Sekunde und das funktioniert so nicht wirklich gut.
Wie würdet ihr sowas umsetzen?
Und noch eine andere Sache:
Ich maches im Moment so, dass nicht in paintComponent selbst neugezeichnet wird, sondern, dass dort ein Flag gesetzt wird und dann beim nächsten Zeichen durch den Timer einmal alles neugezeichnet wird, was auch relativ gut funktioniert.
Der Plotter benutzt dafür immer ein Attribut graphics, das am anfang einmal auf panel.getGraphics gesetzt wurde.
Testweise habe ich dann mal im paintComponent dieses Attribut umgestzt auf g, also den Übergabeparameter von paintComponent, was komischerweise zur Folge hatte, dass die Neuzeichnung zwar gemacht wurde, aber sofort danach wieder verschwand, so das man gerade noch sehen kann, dass überhaupt etwas gemacht wurde.
Habt ihr dafür irgendwelche Erklärungen?
Danke schonmal für euer Hilfe.
P.S.:
Falls sich wer wundert, warum ich schon wieder einen neuen Thread aufmache, ich dachte mir, da der Titel des alten Threads nicht mehr zu den aktuellen Fragen passt, mach ich mal nen neuen auf.
ich habe vermehrt gelesen, dass man immer alle Zeichnungen in paintComponent machen soll.
Leider hatte ich das noch nicht gelesen, als ich mein Programm (einen Plotter für ein EKG-Signal) geschrieben habe und habe deshalb mit getGraphics gearbeitet.
Das ganze funktioniert allerdings trotzdem und ich habe jetzt noch ein paar Fragen:
Also erstmal, was spricht dagegen, das mit getGraphics zu machen, das Hauptargument was ich gelesen hatte war, dass es dann nicht neu gezeichnet wird, aber ich das so gemacht, das ein Timer laufend die neuen werte zeichnet und das ich trotzdem paintComponent benutze und nur dann wirklich alles neu zeichne und ansonsten nur das was neu kommt, weils sonst extrem flackert.
Ist das so nicht sinnvoller?
Also so wie ich das verstehe, macht man das mit der paintComponent methode so, dass immer alles neu gezeichnet wird, ich erneuere mit 25Hz also 40 Bildern / Sekunde und das funktioniert so nicht wirklich gut.
Wie würdet ihr sowas umsetzen?
Und noch eine andere Sache:
Ich maches im Moment so, dass nicht in paintComponent selbst neugezeichnet wird, sondern, dass dort ein Flag gesetzt wird und dann beim nächsten Zeichen durch den Timer einmal alles neugezeichnet wird, was auch relativ gut funktioniert.
Der Plotter benutzt dafür immer ein Attribut graphics, das am anfang einmal auf panel.getGraphics gesetzt wurde.
Testweise habe ich dann mal im paintComponent dieses Attribut umgestzt auf g, also den Übergabeparameter von paintComponent, was komischerweise zur Folge hatte, dass die Neuzeichnung zwar gemacht wurde, aber sofort danach wieder verschwand, so das man gerade noch sehen kann, dass überhaupt etwas gemacht wurde.
Habt ihr dafür irgendwelche Erklärungen?
Danke schonmal für euer Hilfe.
P.S.:
Falls sich wer wundert, warum ich schon wieder einen neuen Thread aufmache, ich dachte mir, da der Titel des alten Threads nicht mehr zu den aktuellen Fragen passt, mach ich mal nen neuen auf.