2016-11-09 13 views
0

私は私の学校のための基本的なスロットマシンプログラムに取り組んでいます。私はそれが何を意味するのか理解していますが、なぜ私のイメージファイルがnullとして読み込まれるのかわかりません。ImageIconsと最適化のためのヌルポイントレクセット

Exception in thread "main" java.lang.NullPointerException 
at ui.UI.<init>(UI.java:22) 
at ui.Driver.<init>(Driver.java:27) 
at ui.Driver.main(Driver.java:39) 

助けが必要です!

私のコードがどれほど最適であるかわからないので、それについてのヒントも素晴らしいでしょう。

package ui; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.util.ArrayList; 
import java.util.Collections; 

import javax.swing.*; 


public class UI extends JPanel { 
private ArrayList<ImageIcon> images; 
private ArrayList<JLabel> labels; 
JPanel panel1; 
JButton a; 

public UI() { 
    ImageIcon imageGreen = new ImageIcon("C:/Users/Liam/workspace/CSE115-Lab8a/Images/Green.png"); 
    ImageIcon imagePurple = new ImageIcon("C:/Users/Liam/workspace/CSE115-Lab8a/Images/Purple.png"); 
    ImageIcon imageRed = new ImageIcon("C:/Users/Liam/workspace/CSE115-Lab8a/Images/Red.png"); 

    images.add(imageGreen); 
    images.add(imagePurple); 
    images.add(imageRed); 
    setLayout(new GridLayout(3, 2)); 


    for(ImageIcon s : images) { 
     JLabel label = new JLabel(s); 
     labels.add(label); 
     add(label); 

    } 
    a = new JButton("SPIN"); 
    add(a); 

    ActionListener click = new ActionListener() { 
     @Override 
     public void actionPerformed(ActionEvent e){ 
      JLabel label = new JLabel(); 
      removeAll(); 
      updateUI(); 
      Collections.shuffle(labels); 
      add(label); 
      updateUI(); 
      } 
     }; 
     a.addActionListener(click); 
} 
} 

ドライバー

package ui; 
import javax.swing.*; 
import java.awt.*; 
import java.awt.Dimension; 




public class Driver extends JFrame { 

private static final long serialVersionUID = -3413552064004843029L; 
private JPanel panelMain; 
private UI panel; 

public Driver() { 
    setLayout(new GridLayout(2, 1)); 
    setPreferredSize(new Dimension(420, 90)); 
    setResizable(false); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    panelMain = new JPanel(); 
    panelMain.setBackground(Color.WHITE); 
    panelMain.setBounds(0, 0, 420, 90); 
    panelMain.setPreferredSize(new Dimension(200, 40)); 
    add(panelMain); 

    panel = new UI(); 
    panelMain.add(panel); 
    pack(); 






} 

public static void main(String[] args) { 
    Driver frame = new Driver(); 
    frame.setVisible(true); 


} 

} 

THANKS!このコードで

答えて

0

images.add(imageGreen); 

画像がヌルです。初期化されていません。

関連する問題