2011-06-24 56 views
-3

Possible Duplicate:
Errors running Java program日食を使用してJavaプログラムを作成し、NetBeansの

私は現在、Eclipseを使ってJavaプログラムを書いていますを使用してそれを実行傾けます。私はnetbeansを使用してこのjavaプログラムを終了しようとするので、netbeansを使用してjava GUIを作成する方が簡単だと聞いた。しかし、私はnetbeansを使用して私のプロジェクトを開いて、それを実行すると、それは私にエラーが発生します。 Imはbetabansを使って同じプログラムを実行し、eclipseでうまく動作します。

これはエラーです:

run: 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at javax.swing.ImageIcon.<init>(ImageIcon.java:181) 
    at MainForm.addComponentsToPane(MainForm.java:28) 
    at MainForm.createAndShowGUI(MainForm.java:112) 
    at MainForm.access$000(MainForm.java:15) 
    at MainForm$4.run(MainForm.java:125) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641) 
    at java.awt.EventQueue.access$000(EventQueue.java:84) 
    at java.awt.EventQueue$1.run(EventQueue.java:602) 
    at java.awt.EventQueue$1.run(EventQueue.java:600) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:611) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 
BUILD SUCCESSFUL (total time: 8 seconds) 

これは、コードが実行する抱き合わせイムです:

import java.awt.Color; 
import java.awt.Container; 
import java.awt.Font; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 




public class MainForm { 

    public static void addComponentsToPane(final JFrame frame, Container pane) { 
     Color colorGreen = new Color(0, 100, 0); 
     Color colorBrown = new Color(150, 100, 0); 
     //Color colorBlue = new Color (0, 0, 150); 
     //Font font = new Font("Verdana", Font.BOLD, 12); 

     pane.setLayout(null); 
     pane.setBackground(new Color (255, 255, 170)); 

     //add image and necessary labels on top left corner 
     //SHA Image and label 
     ImageIcon image = new ImageIcon(MainForm.class.getResource("SHA_logo.gif"));  
     JLabel label = new JLabel("Office of Traffic & Safety", image, JLabel.LEFT); 
     label.setVerticalTextPosition(JLabel.BOTTOM); 
     label.setHorizontalTextPosition(JLabel.CENTER); 
     label.setFont(new Font("Times New Roman", Font.PLAIN, 11)); 
     pane.add(label); 
     label.setBounds(50, 10, 130, 100); 
     label.setBorder(null); 

     //university of maryland image and label\\\ 
     image = new ImageIcon(MainForm.class.getResource("maryland_flag_round.gif")); 
     label = new JLabel("Univ. of Maryland", image, JLabel.LEFT); 
     label.setVerticalTextPosition(JLabel.BOTTOM); 
     label.setHorizontalTextPosition(JLabel.CENTER); 
     label.setFont(new Font("Times New Roman", Font.PLAIN, 11)); 
     pane.add(label); 
     label.setBounds(190, 10, 130, 90);  
     label.setBorder(null); 

     //critical lane label 
     label = new JLabel("Critical Lane Volume"); 
     label.setFont(new Font("Arial Narrow", Font.BOLD, 30)); 
     label.setForeground(colorGreen); 
     pane.add(label); 
     label.setBounds(50, 90, 250, 50); 
     label.setBorder(null); 

     label = new JLabel("<html>Please choose the analysis type:</html>"); 
     label.setFont(new Font("Arial", Font.BOLD, 18)); 
     label.setForeground(colorBrown); 
     pane.add(label); 
     label.setBounds(25, 130, 300, 70); 
     label.setBorder(null); 

     //back and exit buttons 
     JButton button1 = new JButton("DIAT"); 
     JButton button2 = new JButton ("Intersection"); 
     JButton button3 = new JButton ("Exit"); 
     pane.add(button1); 
     pane.add(button2); 
     pane.add(button3); 
     button1.setBounds(75, 200, 200, 50); 
     button2.setBounds(75, 270, 200, 50); 
     button3.setBounds(75, 340, 200, 50); 

     //add attap label at bottom left 
     image = new ImageIcon(MainForm.class.getResource("attap_logo.gif"));  
     label = new JLabel(image); 
     pane.add(label); 
     label.setBounds(30, 380, 270, 90);  
     label.setBorder(null); 

     button1.addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent arg0) { 
       frame.setVisible(false); 
       frame.dispose(); 
       InterchangeLoad.main(null); 
      } 
     }); 

     button2.addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent arg0) { 
       frame.setVisible(false); 
       frame.dispose(); 
       MultipleIntersectionLoad.main(null); 
      } 
     }); 

     button3.addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent arg0) { 
       frame.setVisible(false); 
       frame.dispose(); 
      } 
     }); 

    } 


    private static void createAndShowGUI() { 
     //Create and set up the window. 
     JFrame frame = new JFrame("Critical Lane Volume"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     //Set up the content pane. 
     addComponentsToPane(frame, frame.getContentPane()); 

     frame.setSize(350, 500); 
     frame.setResizable(false); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 

     //Schedule a job for the event-dispatching thread: 
     //creating and showing this application's GUI. 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 

    } 

} 
+1

すべての.gifイメージは利用できますか? –

+0

あなたのファイル「SHA_logo.gif」は存在しますか? – talnicolas

+2

なぜ同じことを二度尋ねていますか? http://stackoverflow.com/questions/6417805/errors-running-java-program – cirne100

答えて

1

それはあなたのイメージを見つけていません。イメージが同じ相対位置にあることは確かですか?それらはMainForm.classファイルと同じ場所にありますか?また、EclipseよりもNetBeansを使用してGUIを作成する方が簡単だというコメントを除きます。私は両方を使い、両方をうまく使うことができましたが、スイングが分かるまで、コード生成ソフトウェアの使用を避けることをお勧めします。たとえば、Swing/AWTレイアウトマネージャを使用し、null layout/setBoundsを使用しないようにする方法を学ぶことができます。

+0

あなたが正しいです、画像はプロジェクトの下の左パネルに表示されません。これは奇妙です、私はすべての私のイメージがでなければならないフォルダを開くためにnetbeansを使用していますが、他の人がいない間にいくつかの画像だけが表示されます、私は何をすべきですか? – user638234

+0

@ user638234:それには何も変わりありません。 NetBeansはクラスファイルを他の場所に保持しており、画像はJavaファイルではなくクラスファイルである必要があります。 –

1

あなたのプログラムは "SHA_logo.gif"ファイルを見つけることができないので、new ImageIcon(...)new ImageIcon(null)であり、これはNullPointerExceptionを引き起こしています。

関連する問題