明確にするために、私は現在5時間以上調査しており、関連するすべての質問と20を超えるGoogle検索を読みましたが、どれも役に立たず、私のケースを具体的に説明していません.
まず第一に、ここに私のコードがあります:
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.image.*;
import java.io.IOException;
import static Debug.StaticVar.*;
/*
<applet code="ImageTest" width=300 height=100>
</applet>
*/
public class ImageTest extends Applet {
Image img;
MediaTracker tracker;
public void init() {
tracker = new MediaTracker(this);
Thread Loader = new Thread(() -> {
img = getImage(getCodeBase(), "1.jpg");
tracker.addImage(img, 1);
});
Loader.setPriority(10);
Loader.start();
}
public void start() {
try {
tracker.waitForAll();
repaint();
} catch (InterruptedException e) {
}
}
public void paint(Graphics g) {
g.drawImage(img, 0, 0, null);
}
}
私の問題は、ペイントメソッドを呼び出さない再ペイントメソッドです。より具体的には、別のスレッドから repaint を呼び出した場合、または paint メソッドを子クラスに追加して repaint を呼び出した場合に、paint メソッドが実行されますが、アプレットのメイン スレッドから直接呼び出すコードでは機能しません。 . HEEEEELPしてください、私は疲れています