Was ist die Verwendung von super.paint (g)?

8

Kann mir jemand erklären, was super.paint(g) wo ist, g ist eine Graphics Variable in Applets oder AWT oder Swings oder in Java.

Ich habe Nachforschungen angestellt und herausgefunden, dass es zum Überschreiben verwendet wird, aber was nutzt diese Überschreibung?

Ich bin ein Anfänger. Wenn möglich, können Sie den Unterschied zwischen paint(g) und super.paint(g) mit einem kleinen example erklären oder bitte helfen Sie mir mit diesem Code?

%Vor%     
vardin 02.05.2014, 17:56
quelle

3 Antworten

2
  1. Zuerst füge ich super.paint (g) in meine eigene Malmethode ein.
  

Wenn es neu gezeichnet wird, werden zuvor gezeichnete Objekte gelöscht.

Tut mir leid, ich kann nicht den Ruf haben, mehr als zwei Links zu veröffentlichen.

  1. Dann entferne ich super.paint (g) in meiner eigenen Malmethode.

    entfernen Sie super.paint (g)

  

Sie können Dinge sehen, die vorher auf dem Panel gezeichnet wurden.

Wenn Sie super.paint (g) hinzufügen, ruft es in Ihrer Methode die Methode in der Oberklasse dieser Unterklasse auf. Meine Klasse RussiaPanel erweitert JPanel und JPanel erweitert JComponent. Es wird die Methode "public void paint (Graphic g)" in JComponent aufgerufen, und die Dinge im Panel werden gelöscht. Weitere Informationen finden Sie in den API-Dokumenten.

Ich hoffe, Ihnen zu helfen, und verzeihen Sie mein schlechtes Englisch.

    
章斌斌 12.06.2016, 04:44
quelle
4
  

public void paint(Graphics g)

     

Malt den Behälter. Dies leitet die Farbe an alle leichten Komponenten weiter, die Kinder dieses Containers sind. Wenn diese Methode erneut implementiert wird, sollte super.paint(g) aufgerufen werden, damit Komponenten mit geringem Gewicht ordnungsgemäß gerendert werden . Wenn eine untergeordnete Komponente durch die aktuelle Ausschnitteinstellung in g vollständig abgeschnitten wird, wird paint() nicht an dieses untergeordnete Element weitergeleitet.

Direkt von den Dokumenten .

    
Jeroen Vannevel 02.05.2014 17:59
quelle
1

Ich denke, seine Verwendung ist wie bei anderen Methoden, die Sie super.method() verwenden. Dies wird verwendet, um die Methode in der Superklasse aufzurufen. Grundsätzlich kommt es darauf an auf Ihren Zweck und Sie entscheiden, wie man es benutzt. In den meisten Fällen, wir überschreiben Sie das paint(Graphics g) in unserer Unterklasse der zu erfüllenden Komponente unsere Absicht. Wenn Sie super.paint(g) aufrufen, ruft sie möglicherweise die Methode in Superklasse dieser Unterklasse.

Sie sollten super.paintComponent(g) aufrufen, wenn die Superklasse zuerst (oder zuletzt) ​​malen soll;

Das Aufrufen von super.paint(g) würde in Swing eine unangenehme Rekursion verursachen.

    
Rakesh KR 02.05.2014 18:04
quelle

Tags und Links