2013-12-11 5 views
0

스윙을 사용하는 데 상당히 익숙하며 Eclipse에서 이미지 파일을 SRC 디렉토리에 넣으면 프로그램에 액세스 할 수 있다고 생각했습니다. . 물론 이것은 사실이 아닙니다. 이미지에 액세스하는 유일한 방법은 전체 "C :"파일 이름을 제공하는 것입니다. 하위 디렉토리에 넣고 폴더를 빌드 경로에 추가했습니다. 나는 그것이 효과가있을 것이라고 생각했다.Eclipse에서 표시 할 이미지를 가져올 수 없습니다.

나의 프로그램은 현재 내가하고있는 일이기 때문에 현재 "PullingMyHairOut"라고 불리고 있습니다. 답을 얻었다면 Eclipse의 내부 동작에 대해 전혀 알지 못한다고 가정하십시오. 진실과 거리가 멀기 때문입니다. 원본 폴더에 이미지를 넣을 경우

import java.awt.BorderLayout; 
import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 


public class PullingHairOut extends JFrame{ 
    ImageIcon img = new ImageIcon("us.jpg"); 
    JLabel label = new JLabel(img); 

    public PullingHairOut(){ 
     setSize(640,480); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 
     add(label,BorderLayout.CENTER); 
     add(new JButton("Help"),BorderLayout.SOUTH); 
     setVisible(true); 
    } 

    public static void main(String[] args) { 
     PullingHairOut main = new PullingHairOut(); 
    } 
} 
+0

두 가지. 1- 나는 이클립스 리소스가 "src"가 아닌 프로젝트 내의 "resources"폴더에 저장되어야한다고 믿는다. 2- 이러한 리소스는 파일처럼 더 이상 액세스 할 수 없으며 대신 리소스로 액세스 할 수 있습니다. getClass(). getResource ("/ path/to/resource")' – MadProgrammer

+0

몇 가지 코드를 제공해야합니다. – agpt

+0

이미지는 일반적으로'res -> drawable xxxx' 폴더에 있습니다. –

답변

0

, 당신은 (내가 정확히 기억 경우) 이런 식으로 액세스 할 수 있습니다

src/us.jpg 

이것은 현재 작업 디렉토리는 루트에 밖으로 시작되기 때문에 폴더. 다시 한번 말하지만, 나는 틀릴 수도 있습니다. Eclipse를 사용하여 이미지 파일을 마지막으로로드 한 것은 몇 달 전이었습니다.

0

프로젝트 루트를 마우스 오른쪽 버튼으로 클릭하여 "res"라는 폴더를 만듭니다. us.jpg를 폴더로 이동하십시오. 코드를 수정하십시오. ImageIcon img = new ImageIcon("res/us.jpg");

0

클래스 # getResource() 및 ImageIcon (URL) 생성자를 읽으십시오. 파일에 대해 생각하지 마라. 그러면 결국 응용 프로그램을보다 유연하게 만들 수 있습니다.

TL : 원본 폴더의 루트에있는 항목에 대해 클래스 # getResource ("us.jpg") (다음 중 하나에서 호출 됨)를 사용하여 런타임 클래스 경로에서 해당 URL을 찾을 수 있습니다. 독자적인 클래스)를 작성해, 결과의 URL를 ImageIcon 생성자에 건네줍니다.

관련 문제