Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
mehrere repaint() Aufrufe - NUR eine Ausführung. Warum?
>paint-Aufrufe können doch zusammengefasst werden,
>daher ist bei 10x repaint nicht ersichtlich, ob i nun 10x oder nur 1x erhöht wird,
>
in meiner paintComponent() Funktion wird i zuerst mal auf 0 gesetzt.
Das heißt der Endwert von i ist immer gleichgroß, egal ob man paintComponent() 10 mal oder nur 1 mal aufgerufen hat.
>>Nein nicht jedes, sondern jedes, das der Programmierer zu jedem von ihm gewünschten Zeitpunkt will.
>Was soll der Satz den bedeuten?
>
Es soll die Vorteile von active und passive renderig vereinigen:
Wenn der Programmierer in einer Schleife mehrfach zeichnen will, dann wird das nur dann auch jweils _sofort_ gemacht (also nicht nur ein Bitte wie beim passive renderig), wenn das Fenster sichtbar ist.
Wenn das Fenster nicht sichtbar ist (z.B. verdeckt) wird nicht gezeichnet.
Wenn das Fenster unsichtbar ist, wird die CPU also nicht belastet.
:lol:
Wie konnte ich nur so ignorant sein nicht von Anfang an zu erkennen das du das Zeichensystem revolutionieren wirst und die Fehler der Stümper bei SUN korrigieren wirst.
Du glaubst offensichtlich sowieso nur was du auch glauben möchtest, also viel Erfolg bei deinen Vorhaben und mir bleibt immerhin der Trost keines deiner Programme verwenden zu müssen.
Weil's gerade so schön lustig ist beantworte mir doch noch ein paar Fragen bevor du an's Coden gehst:
1. was sind denn die Nachteile von passive Rendering die du meinst korrigieren zu müssen?
2. wofür meinst du das zu brauchen?
3. wie stellst du dir die Implementierung vor?
4. wie willst du erkennen ob ein Fenster verdeckt ist?
>paint-Aufrufe können doch zusammengefasst werden,
>daher ist bei 10x repaint nicht ersichtlich, ob i nun 10x oder nur 1x erhöht wird,
>
in meiner paintComponent() Funktion wird i zuerst mal auf 0 gesetzt.
Das heißt der Endwert von i ist immer gleichgroß, egal ob man paintComponent() 10 mal oder nur 1 mal aufgerufen hat.
ok. ich hatte noch deine alten Versionen im Kopft,
aber angesichst meiner wiederholten Aussage
'INNERHALB der Operation gerne das i um Schleifen zu zählen oder so, '
macht da eine Frage von dir genausowenig Sinn, nur auf eine andere Weise
1)
>Wie konnte ich nur so ignorant sein nicht von Anfang an zu erkennen das du das
>Zeichensystem revolutionieren wirst und die Fehler der Stümper bei SUN korrigieren wirst.
>
ich bin nicht größenwahnsinig. Es war eine Idee. Die kann auch schlecht sein.
>
>1. was sind denn die Nachteile von passive Rendering die du meinst korrigieren zu müssen?
Ich zitiere dich:
"wenn du (aus welchen Gründen auch immer) mehr Kontrolle brauchst musst du Active Rendering verwenden "
>2. wofür meinst du das zu brauchen?
siehe 1)
>3. wie stellst du dir die Implementierung vor?
Dazu fehlen mir die Kenntnisse
>
>4. wie willst du erkennen ob ein Fenster verdeckt ist?
Genauso wie beim passive rendering
>
2)
Du hast mal geschrieben:
"-in paint keine Zustände ändern
-keine Logik in paint
-wenn du (aus welchen Gründen auch immer) mehr Kontrolle brauchst musst du Active Rendering verwenden
-ansonsten: lass AWT die Sache regeln und häng dich nicht an den Implementierungsdetails auf"
Gibt es sonst noch welche Regeln (bzw. gibt es eine Liste aller Regeln), bzw. gibt es eine Stelle in der Doku, wo diese ganze Regeln stehen, oder sind die auf mehrere Stellen (wo?) verteilt?
Die braucht man dann nur anwenden und die Sache hat sich erledigt.
Zu den Regeln/Eigenschaften von paint() verweise ich mal auf den Orginalartikel von Sun: Painting in AWT and Swing
Oder auf mehrere Artikel hier in der Forums FAQ.
>1. was sind denn die Nachteile von passive Rendering die du meinst korrigieren zu müssen?
Ich zitiere dich:
"wenn du (aus welchen Gründen auch immer) mehr Kontrolle brauchst musst du Active Rendering verwenden "
Zu den Regeln/Eigenschaften von paint() verweise ich mal auf den Orginalartikel von Sun: Painting in AWT and Swing
1)
Ich habe keine Regel entdeckt, die folgendes verbietet:
-in paint keine Zustände ändern
-keine Logik in paint
Es gibt sogar ein Beispiel, wo in paint einiges gerechnet wird:
Code:
public void paint(Graphics g) {
// Dynamically calculate size information
Dimension size = getSize();
// diameter
int d = Math.min(size.width, size.height);
int x = (size.width - d)/2;
int y = (size.height - d)/2;
// draw circle (color already set to foreground)
g.fillOval(x, y, d, d);
g.setColor(Color.black);
g.drawOval(x, y, d, d);
}
2) Ich habe in dem Artikel folgendes nicht ganz kapiert:
Bei Swing steht:
...
"This means that for Swing components, update() is never invoked"
...
Bei Lightweights & System-triggered Painting steht:
"The system-triggered paint request originates from the lightweight framework (i.e., the lightweight is resized), which results in a call to update(), which by default is forwarded to paint() ."
Swing besteht doch aus lightweight Komponenten, aber bei Swing gibt es kein update.
Das ist für mich ein Widerspruch.
Das bißchen rumrechnen ist natürlich ok, darum geht es gar nicht. Der Code ist nur dazu da die Daten korrekt visuell zu repräsentieren. Du wirst aber feststellen das kein Member verändert wird.