2015-01-14 3 views
27

Java 프로젝트 (이미지를 패널에로드하는 단순한 클래스)에서 사용할 이미지 파일을 저장할 위치가 필요합니다. 나는 도처에서 보았고 이것을하는 법을 찾을 수 없다. 어떻게해야합니까?Eclipse의 Java 프로젝트에 resources 폴더를 추가하는 방법

나는 새 폴더를 프로젝트에 추가하고, 프로젝트에 새 클래스 폴더를 추가하고, 프로젝트에 새 소스 폴더를 추가하려고 시도했습니다. 내가 무엇을해도 항상 나는 IOException이됩니다. 폴더는 항상 빌드 경로에 있다고 말하므로 무엇을해야할지 모르겠습니다.

import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import javax.imageio.ImageIO; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class PracticeFrame extends JFrame{ 

private static BufferedImage image; 
Thread thread; 

public PracticeFrame() { 
    super(); 
    setPreferredSize(new Dimension(640,480)); 
    setResizable(false); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    pack(); 
    setVisible(true); 
} 

public static void main (String[] args) { 
    PracticeFrame pframe = new PracticeFrame(); 
    try { 
     image = ImageIO.read(new File("/islands.png")); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    JPanel panel = new JPanel() { 
     @Override 
     protected void paintComponent(Graphics g) { 
      super.paintComponent(g); 
      g.drawImage(image,0,0,null); 
     } 
    }; 

    panel.setBackground(Color.BLUE); 
    panel.repaint(); 
    pframe.add(panel); 


} 


} 

편집 : 나를 위해 일한 뭔가, 나는 그것을 제거 후 클래스 폴더와 main/res/ 폴더를 추가하고 이유를 모르겠어요. /main/res/이 클래스 경로로 빌드 경로에 포함되어 있었지만 여전히 작동하지 않았습니다. 내가 추가했을 때, 제외 된 필터에 대해 나에게 말해주는 팝업이 나타났습니다. 내가 빌드 경로에 라이브러리에서 폴더를 제거하고 내 파일 경로를 변경할 때 :

image = ImageIO.read(new File("src/main/res/islands.png")); 

나는 적어도 IOException가 던져지고 멈췄다. 이미지가 패널에 제대로 추가되어서는 안되기 때문에 표시되지는 않지만 적어도 파일을 찾았습니다 (필자 생각).

+0

예외를 생성하는 코드를 표시하십시오. 잘못된 경로를 지정했을 수 있습니다. –

+0

@ PM77-1 res 폴더를 추가하는 각기 다른 방법으로 사용한 코드 – redeagle47

+0

프로젝트 디렉토리 구조를 게시하고'.class' 파일의 대상을 알려주십시오. –

답변

-1

자원 폴더이 시도 추가 한 후 :

추가 resoure 폴더
ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
InputStream input = classLoader.getResourceAsStream("test.png"); 

try { 
    image = ImageIO.read(input); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+0

이전에 그렇게하려고 시도했지만 도움이되지 않았습니다. – redeagle47

53

, 빌드 경로 -> 소스 (탭) - -> 구성 경로> 빌드 추가 폴더 ->은 새 폴더를 만들 enter image description here

"my-resource.txt"파일을 새 폴더에 추가하십시오. 그런 다음 코드에서 :

InputStream res = 
    Main.class.getResourceAsStream("/my-resource.txt"); 

    BufferedReader reader = 
     new BufferedReader(new InputStreamReader(res)); 
    String line = null; 
    while ((line = reader.readLine()) != null) { 
     System.out.println(line); 
    } 
    reader.close(); 
+0

이것은 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남기십시오. 자신의 게시물에 언제나 댓글을 달 수 있으며 충분한 [평판] (http://stackoverflow.com/help/whats-reputation)을 갖게되면 [모든 게시물에 댓글을 달 수] 있어야합니다 (http://stackoverflow.com/help/privileges/comment). –

+3

나는 이것이 옳은 대답이라고 생각한다. 저자는 정말로 프로 넥토 (proyecto)에 자원을 추가하는 방법을 모른다. 그는 코드에서 어떻게 열어야하는지 알고 있어야합니다. –

+0

더 많은 정보를 추가해야합니다. OP가 무엇을 잘못했는지, 왜 (특히 * 어떻게 *) 코드가 문제를 해결했는지 설명하십시오. –

0

봅니다 이미지를 읽기 위해 전체 경로를 부여합니다.

예 이미지 = ImageIO.read (새 파일 ("D : /work1/Jan14Stackoverflow/src/Strawberry.jpg")));

코드에서 전체 경로를 제공 한 후에 예외가 발생하지 않습니다. 자바 코드로 이미지 파일을 읽으려는 경우. 참조 다음 - 클래스의 객체가 마지막에 생성 된 경우 코드가 나를 위해 잘 작동이 주제의 제목에 게시 귀하의 질문에 대답하려면 이미지를

// PracticeFrame pframe = new PracticeFrame();//comment this 

new PracticeFrame().add(panel); 
+0

나는 운이 없기 전에 그것을 시도했다. – redeagle47

+0

끝에서 클래스를 초기화하십시오. –

+0

new PracticeFrame(). add (panel); 내 이미지가로드 된 –

2

를 표시

http://docs.oracle.com/javase/tutorial/2d/images/examples/LoadImageApp.java. ..

1 단계 -> 오른쪽 옵션을 선택 자바 프로젝트를 클릭 "속성" Step 1--> Right Click on Java Project, Select the option "Properties"

2 단계 -> 당신은 "소스"탭에 있는지 확인, 왼쪽 메뉴에서 "자바 빌드 경로"를 선택, "폴더 추가"를 클릭 Select "Java Build Path" from the left side menu, make sure you are on "Source" tab, click "Add Folder"

3 단계 -> 옵션을 클릭 "새로 만들기 폴더..."창 하단에서 확인할 수 Click the option "Create New Folder..." available at the bottom of the window

4 단계 ->로 새 폴더의 이름을 입력합니다"자원 "과 다음" "마침 Enter the name of the new folder as "resources" and then click "Finish"

5 단계 -> 이제 ' , 자바 프로젝트에서 새로 만든 폴더 "자원"을 참조하십시오 "확인"을 클릭, 다시 "확인"을 클릭 할 수있을 것이다
Now you'll be able to see the newly created folder "resources" under your java project, Click "Ok", again Click "Ok"

최종 단계 -> 이제 새 폴더 "를 볼 수 있어야합니다 리소스 "자바 프로젝트에서
Now you should be able to see the new folder "resources" under your java project

관련 문제