私は私のような同様の質問で他のトピックを調べようとしましたが、それらの解決策のほとんどは画像のクラスパスを修正することを指しているようです...そこで、クラスパスを絶対に変更し、クラス取得リソースを使用してそれらを試しましたが、それでも画像はレンダリングされません。私はそれが主な方法に関係しているのではないかと疑っています。オンラインのどこかにソースコードをコピーしたので、その方法がどのように機能するのか完全には理解していません。私はEclipseエディターを使用しており、すでにFlapクラスファイルと一緒に画像ファイルを配置していました。
package wing;
import java.awt.*;
import javax.swing.*;
public class Flap extends JComponent implements Runnable {
Image[] images = new Image[2];
int frame = 0;
public void paint(Graphics g) {
Image image = images[frame];
if (image != null) {
// Draw the current image
int x = 0;
int y = 0;
g.drawImage(image, x, y, this);
}
}
public void run() {
// Load the array of images
images[0] = new ImageIcon(this.getClass().getResource("/Wing/src/wing/wing1.png"));
images[1] = new ImageIcon(this.getClass().getResource("/Wing/src/wing/wing2.png"));
// Display each image for 1 second
int delay = 10000; // 1 second
try {
while (true) {
// Move to the next image
frame = (frame+1)%images.length;
// Causes the paint() method to be called
repaint();
// Wait
Thread.sleep(delay);
}
} catch (Exception e) {
}
}
public static void main(String[] args) {
Flap app = new Flap();
// Display the animation in a frame
JFrame frame = new JFrame();
frame.getContentPane().add(app);
frame.setSize(800, 700);
frame.setVisible(true);
(new Thread(app)).start();
}
}