2017-01-24 2 views
0

어떤 이유로 든 이미지를 만들려고하면 내 경로가 작동하지 않고 왜 그럴지 모릅니다. 대신 ImageView를 사용해야합니까? java.lang.IllegalArgumentException가 :javafx 응용 프로그램에서 사용하는 이미지

Image planetPicture = new Image("/Users/rizins/Desktop/earth.gif"); 

나는 오류를에 의해 발생

를 얻을 잘못된 URL : 잘못된 URL 또는 자원 javafx.scene.image.Image.validateUrl (이미지에서

를 찾을 수 없습니다. java : 1089)

이 문제를 해결하는 방법에 대한 아이디어는 다른 게시물에 대한 링크 또는 많은 도움이 될 것입니다.

답변

0

그럼 이미지 생성자가 URL을 예상하고 전달해야하는 프로토콜을 제공하지 않습니다. "file:/Users/rizins/Desktop/earth.gif"

+0

그 경우에는 작동하지만, 파일 이름에 유효 한 모든 문자가 URL에서 유효하지 않기 때문에 일반적으로 파일 이름에 "file :"을 붙이기 만해도 * 충분하지 않습니다. (나는 당신을 비판하지 않는다. 왜냐하면 나는 정확한 실수가 많은 Stack Overflow 포스트를 포함하여 셀 수있는 것보다 더 많은 시간을 보았 기 때문이다.) – VGR

+0

와우 나는 그것을 잊어 버린다고 믿을 수 없다. . 그러나 이것이 내가 찾고 있었던 정확하게 것이다 다시 당신에게 감사해라! –

0

이미지를 참조하는 방법입니다. 당신이 넷빈즈에서 나를 위해 작동 무엇인가 등, IDE를 사용하는 경우 디렉토리 구조가

src/ 
├── yourclass 
│   ├── YourClass.java 
└── images 
    ├── Image-1.png 
    ├── Image-2.png 

과 같은 경우 어느 또한 좀

...에 따라 다음

Image myImage=new Image(YourClass.class.getClass().getResource("/images/Image-1.png").toString()); 
ImageView imgView=new ImageView(); 
imgView.setImage(myImage); 
같은

당신을 위해 일해야합니다 ....

+0

마지막 두 줄은'ImageView imgView = new ImageView (myImage);'로 쓸 수 있습니다. – VGR

+0

사실. 하지만 나는 지난 학기에했던 숙제에서 복사/붙여 넣기를했는데 줄을 병합하는 대신 배열에서 정렬 된 객체로 바꾸는 것이 더 쉬웠습니다 ... – ivanivan

+0

그래서이게 효과가 있다는 것을 알려 드리고 싶습니다. 양식하지만 graphicsContext 및 캔버스 라이브러리를 사용하기 때문에 이미지 변수를 사용하여 스프라이트 클래스를 구현했다 그러나 다른 프로젝트의 파일 구조를 위해이 너무 잘 작동합니다 감사합니다 –

관련 문제