Sie versuchen, eine nicht statische Methode direkt von einer anderen Klasse aufzurufen, die in Java nicht zulässig ist. Die Methode paint() in Ihrer ersten Klasse ist die nicht statische Methode. Sie konnten die Variablen stickx2 und so verwenden, weil sie wie in Ihrer ersten Klasse definiert statisch sind.
Also, ich schlage vor, Sie erstellen ein Objekt von StickFrame() in der GameLoop-Klasse und kopieren Sie Ihren gesamten Code in Ihrer StickFrame-Hauptmethode und legen Sie es in Ihre GameLoop-Hauptmethode. Es wird nicht empfohlen, zwei Hauptmethoden zu verwenden.
Eine Stick-Frame-Variable unterhalb Ihrer Serialisierungs-ID deklarieren.
StickFrame s;
Dann instanziiert es in Ihrem gameLoop Konstruktor
s = new StickFrame();
Jetzt müssen wir die Repaint von einer anderen Klasse Problem zu beheben. Dazu benötigen wir eine Methode in der gameLoop-Klasse.
public void repaintStickFrame()
{
s.repaint();
}
es dann von
s.repaintStickFrame() in your loop.
rufen oder Sie können
s.repaint();//place in loop
Heres ein Link zu einer Frage einfach anrufen, die ähnlich wie bei Ihnen ist und Lösungen sowie
Calling repaint from another class JFrame
Heres ein Link, der erklärt, wie Sie ein Objekte Methode aufrufen können, wenn Sie eine erstellt haben (wie wir oben haben, die uns die repaint() -Methode von einer anderen Klasse zu nennen erlaubt):
https://docs.oracle.com/javase/tutorial/java/javaOO/usingobject.html
Es wird abgeraten, einen externen Dienst zum Teilen von Codes zu verwenden. Codes sollten in der Frage direkt als Text enthalten sein. – MikeCAT
Mein Fehler, ich bin einfach schrecklich mit den Code-Blöcken, sie würden nicht richtig einfügen. – Joey402