Проблема с тем, что цикл for не находит мои изображения
Это те ошибки, которые я получил. Я провел исследование этих исключений и обнаружил, что это происходит из-за того, что массив не заполняется = null.
<pre>Exception in thread "main" java.lang.NullPointerException at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:217) at LogoAnimatorJPanel.<init>(LogoAnimatorJPanel.java:27) at LogoAnimator.main(LogoAnimator.java:11)
При запуске кода это строка ниже, которая выделяет, я попытался изменить каталог изображений, но пока безуспешно.
for ( int count = 0; count < images.length; count++ ) images[ count ] = new ImageIcon( getClass().getResource("C:/Users/migue/Documents/Jgrasp/JavaPart1/" + IMAGE_NAME + count + ".jpg") );
Первая часть моей JPanel. JavaPart1-это каталог для моих изображений.
public class LogoAnimatorJPanel extends JPanel { private final static String IMAGE_NAME = "Car1.jpg"; // base image name protected ImageIcon images[]; private final int TOTAL_IMAGES = 18; // number of images private int currentImage = 0; // current image index private final int ANIMATION_DELAY = 50; // millisecond delay private int width; // image width private int height; // image height private Timer animationTimer; // Timer drives animation // constructor initializes LogoAnimatorJPanel by loading images public LogoAnimatorJPanel() { images = new ImageIcon[ TOTAL_IMAGES ]; // load images for ( int count = 0; count < images.length; count++ ) images[ count ] = new ImageIcon( getClass().getResource("C:/Users/migue/Documents/Jgrasp/JavaPart1/" + IMAGE_NAME + count + ".jpg") ); public void startAnimation() { if ( animationTimer == null ) { currentImage = 0; // display first image // create timer animationTimer = new Timer( ANIMATION_DELAY, new TimerHandler() ); animationTimer.start(); // start Timer } // end if else // animationTimer already exists, restart animation { if (!animationTimer.isRunning()) animationTimer.restart(); } // end else } // end method startAnimation
Главное здесь.
public class LogoAnimator { // execute animation in a JFrame public static void main( String args[] ) { LogoAnimatorJPanel animation = new LogoAnimatorJPanel(); JFrame window = new JFrame( "Animator test" ); // set up window window.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); window.add( animation ); // add panel to frame window.setVisible( true ); // display window animation.startAnimation();
Я считаю, что решение может быть простым, но я застрял на весь день и решил обратиться за помощью.
Что я уже пробовал:
Я попытался изменить цикл for и каталог изображений.