2017-12-28 20 views
-2

나는 스윙 GUI에서 초보자이며 MacBook Pro와 Eclipse Luna를 사용하고 있으며 내 이미지는 찾기에 제 코드와 같은 폴더에 있지만 Eclipse에서는 이미지가 내 코드와 같은 폴더에 표시되지 않습니다. 참조 : 내가 말했듯이 사람이 날이 버그를 해결하는 데 도움 수 있다면java.lang.NullPointerException ImageIcon에 대한 getResource의 GUI 스윙

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at javax.swing.ImageIcon.<init>(ImageIcon.java:217) 
    at Frame.<init>(Frame.java:13) 
    at Frame$1.run(Frame.java:26) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) 
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) 
    at java.awt.EventQueue.access$500(EventQueue.java:97) 
    at java.awt.EventQueue$3.run(EventQueue.java:709) 
    at java.awt.EventQueue$3.run(EventQueue.java:703) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) 
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) 

, 그것은 SUPER 도움이 될 것입니다 : 여기

Image of the image in finder

Image of the image in eclipse

import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JScrollPane; 
import javax.swing.SwingUtilities; 
import java.awt.BorderLayout; 

class Frame extends JFrame { 
    public Frame() { 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setTitle("Online First Game Image"); 

     //below is where one of the errors are 

     ImageIcon image = new ImageIcon(this.getClass().getResource("/image.png")); 
     JLabel label = new JLabel(image); 
     JScrollPane scrollPane = new JScrollPane(label); 
     scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
     scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); 
     add(scrollPane, BorderLayout.CENTER); 
     pack(); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       // where the other error is 
       new Frame().setVisible(true); 
      } 
     }); 
    } 
} 

그리고하면 오류 메시지가 .

편집 : 문제가 해결되어 코드와 아무 관련이 없습니다. 중복이 아니며 Eclipse 디렉토리에 이미지를 추가하는 데 문제가 있습니다.

+0

내가 stron 것 :

변경이이에 의해

ImageIcon image = new ImageIcon(this.getClass().getResource("/image.png"));

을 클래스는 패키지에 클래스를 넣고 리소스 디렉토리에 이미지를 넣는 것이 좋습니다. –

+0

@ MLG HockeyPlayer :이 답변, [리소스로 이미지로드 중] (https://stackoverflow.com/a/9866659/1057230), 주제에 대한 도움이 되길 바랍니다 .-) –

답변

0

의 image.png 전에 슬래시 제거 :

ImageIcon image = new ImageIcon(this.getClass().getResource("image.png"));

+0

클래스가 이미 빈 패키지를 사용하면 아무런 차이가 없습니다. – VGR

+0

코드와 관련이없는 문제가 이미 해결되었습니다. –