Methode wird genutzt, ohne dass ich die aufrufe?

uuqfowehui23

Aktives Mitglied
1643801665209.png
Hi, ganz oben in der Klasse haben wir p1 und p2 definiert.
Bei der Methode init wurde, p1 und p2 bearbeitet. Was ich nicht checke, wenn ich dann bei der Methode paintCompononent nun p1 und p2 mit fill hinzufüge oder keine Ahnung was fill genau macht, aber da wird dann das bearbeitete p1 und p2 hinzugefügt, also das was man bei init bezüglich p1 und p2 eingestellt hat wird da unten dann übernommen, aber müsste ich nicht zuvor die Methode init bei der Methode paint component aufrufen, damit die Bearbeitungen, die ich bei der Methode getan habe, durchgeführt werden??
 
Beste Antwort
Bei der Methode init wurde, p1 und p2 bearbeitet. Was ich nicht checke, wenn ich dann bei der Methode paintCompononent nun p1 und p2 mit fill hinzufüge oder keine Ahnung was fill genau macht, aber da wird dann das bearbeitete p1 und p2 hinzugefügt, also das was man bei init bezüglich p1 und p2 eingestellt hat wird da unten dann übernommen, aber müsste ich nicht zuvor die Methode init bei der Methode paint component aufrufen, damit die Bearbeitungen, die ich bei der Methode getan habe, durchgeführt werden??
Nein paintComponent wird immer wieder aufgerufen wenn neu gezeichnet werden soll. init wird wahrscheinlich im Konstruktor aufgerufen.
Bei paintComponent( .. ) fehlt außedem
[CODE lang="java" title="paintComponent" highlight="2"]public void paintComponent( Graphics g ){...
eine methode kann nicht ohne aufruf aufgerufen werden

falls du den code irgendwoher hast könnte es an reflectoin liegen dass irgendwie über eine Hintertür die methode aufgerufen wird...

was dein satz bedeutet versteh ich hinten und vorne nicht... kann auch dran liegen dass ich nur 4 stunden schlaf hatte 😀
 
Vermutlich wird init() irgendwo im Konstruktor der Klasse aufgerufen, oder so.

Was meinst du denn mit "p1 und p2 mit fill hinzufügen"? Beim Aufruf von paintComponent() ist es nicht möglich, p1 und p2 zu übergeben und wenn von der Instanz wirklich nichts aufgerufen wird, außer paintComponent(), dann sollten p1 und p2 NULL sein.
 
Bei der Methode init wurde, p1 und p2 bearbeitet. Was ich nicht checke, wenn ich dann bei der Methode paintCompononent nun p1 und p2 mit fill hinzufüge oder keine Ahnung was fill genau macht, aber da wird dann das bearbeitete p1 und p2 hinzugefügt, also das was man bei init bezüglich p1 und p2 eingestellt hat wird da unten dann übernommen, aber müsste ich nicht zuvor die Methode init bei der Methode paint component aufrufen, damit die Bearbeitungen, die ich bei der Methode getan habe, durchgeführt werden??
Nein paintComponent wird immer wieder aufgerufen wenn neu gezeichnet werden soll. init wird wahrscheinlich im Konstruktor aufgerufen.
Bei paintComponent( .. ) fehlt außedem
[CODE lang="java" title="paintComponent" highlight="2"]public void paintComponent( Graphics g ){
super.paintComponent(g);
..
}[/CODE]
 
Beste Antwort
Falls deine Klasse von von einem Swing-Objekt ableitet, das angezeigt werden soll, dann überschreibt deine paintComponent Methode die vorgegebene und wird dann aufgerufen, sobald Swing das für nötig hält.
Wie blender auch gesagt hat, sollte darin auch super.paintComponent() stehen, damit auch wirklich alles gezeichnet wird.
 

Zurück
Oben