paint nach knopfdruck
Schaich
- java
Hey
kann mir einer sagen wie ich die paint()-Mathode erst nach einem knopfdruck ausführen kann??
MfG Schaich
Hello,
kann mir einer sagen wie ich die paint()-Mathode erst nach einem knopfdruck ausführen kann??
vielleicht - auf wem und in was für einem Umfeld?
MfG
Rouven
vielleicht - auf wem und in was für einem Umfeld?
Eigentlich ist mir das so ziemlich egal.
Ich will nur dass ich z.b. was in die paint() methode schreibe was auf einen buttonklick ausgeführt wird, egal wie
MfG Schaich
Hello,
Ich will nur dass ich z.b. was in die paint() methode schreibe was auf einen buttonklick ausgeführt wird, egal wie
die Paint Methode von wem? Applet, Panel, JFrame, was denn? Und wo kommt der Button her?
MfG
Rouven
die Paint Methode von wem? Applet, Panel, JFrame, was denn? Und wo kommt der Button her?
ein ganz normales Frame.
der Button kann ist im konstruktor.
Hello,
deine Informationspolitik ist nicht wirklich hilfreich!
MfG
Rouven
- Baue dem Button einen entsprechenden Listener, rufe im Listener die paint-Methode auf
- sollte die paint-Methode automatisch beim Erstellen des Objekts aufgerufen werden, dann versuche die Methode zu überschreiben und über ein boolean-Flag in der Klasse zu steuern, ob die Methode der Superklasse aufgerufen wird, was du erst zulässt, wenn vorher auf den Button geklickt wurde.
Danke
Hallo Schaich,
kann mir einer sagen wie ich die paint()-Mathode erst nach einem knopfdruck ausführen kann??
Wenn Du sowas machen willst, hast Du das Konzept von Swing (bzw. sehr vielen GUI-Toolkits) nicht verstanden.
paint() ist dazu da, eine Komponente (oder Teile davon) entsprechend des aktuellen Zustands neu zu zeichnen. Wann das erforderlich ist, kannst Du gar nicht so direkt wissen. Es hängt davon ab, ob die Komponente überhaupt zu sehen ist. Du kannst lediglich mit "repaint()" das Zeichnen neu anstoßen, wenn Du z.B. etwas am Zustand der Komponente geändert hast.
Die Lösung ist also so etwas:
Du versiehst Deine Komponente mit einem Feld (private boolean buttonClicked = false) und einer Methode, das zu ändern:
public void wasClicked() {
buttonClicked = true;
repaint();
}
Dann kannst Du paint() so implementieren:
public void paint(...) {
if (buttonClicked) {
// irgendwas zeichnen.
}
}
Natürlich ist es normalerweise nicht sinnvoll, als Zustand einer Komponente abzuspeichern, dass irgend welche Buttons angeclickt wurden.
Da sollte man irgend etwas verwenden, was der Bedeutung der Komponente entspricht und diesen Zustand dann beim Click auf den Button entsprechend ändern.
Grüße
Daniel