2010-04-13 12 views
1

웹 기반 응용 프로그램에서 사용중인 Java 애플릿에 JPEG 이미지와 움직이는 점을 표시하려고합니다. 그러나 애플릿을 실행할 때 제대로 작동하지만 JSP 페이지에서 애플릿을 표시 할 때 이동하는 점은 표시되지만 JPEG 이미지는 표시되지 않습니다.애플릿의 이미지가 웹 페이지에 표시되지 않습니다.

JPEG가 필요한 특정 폴더가 있습니까?

다음은 그림 그리기 및 화면상의 움직이는 점에 사용하는 두 가지 방법입니다.

public class mapplet extends Applet implements Runnable { 

int x_pos = 10; 
int y_pos = 100; 
int radius = 20; 
Image img, img2; 
Graphics gr; 
URL base; 
MediaTracker m; 

@Override 
public void init() { 

     mt = new MediaTracker(this); 

     try { 
      //getDocumentbase gets the applet path. 
      base = getCodeBase(); 
      img = getImage(base, "picture.jpg"); 
      m.addImage(img, 1); 
      m.waitForAll(); 
     } catch (InterruptedException ex) { 
      Logger.getLogger(movement.class.getName()).log(Level.SEVERE, null, ex); 
     } 

public void paint (Graphics g) { 

g.drawImage(img, 0, 0, this); 
// set color 
g.setColor (Color.red); 

// paint a filled colored circle 
g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius); 

} 

코드 아래 하나

<applet archive="mapplet.jar" code="myapplets/mapplet.class" width=350 height=200> 
</applet> 

JAR 파일 및 픽처 JSP 페이지와 같은 폴더에 JSP 페이지로부터 호출하고, 콘텐츠를 포함하는 폴더는 존재 응용 프로그램의 웹 섹션에있는 애플릿의 클래스 및 이미지 애플릿은 잘로드되지만 그림은 표시되지 않습니다. 코드가 아니라 문제의 원인이되는 그림의 위치라고 생각합니다.

감사합니다.

+1

어떻게 지금 이미지를로드합니까? 몇 가지 코드를 보여주십시오 – Roman

+1

경로 문제처럼 보입니다. 더 자세한 정보를 제공 할 수 있습니까? 애플릿 코드 및 서버상의 이미지 위치가 도움이 될 것입니다. –

+0

@Suresh : 그것은 내게 (거의 다가 가고있는) 답변에서 반복하도록 권장 된 좋은 조언이었습니다. –

답변

0

예, 이미지는 소스 코드와 동일한 폴더에 있어야합니다. images라는 폴더를 작성하고 그 안에 모든 이미지를 넣고 "picture.jpg"를 "\ images \ picture.jpg"로 변경하는 것이 좋습니다. 이미지가 소스 코드와 동일한 폴더에 있는지 웹 사이트 디렉토리를 확인하십시오.

+0

URL은 슬래시가 아닌 슬래시를 사용합니다. 옆으로,'/ images/picture.jpg '경로는 사이트의 루트에있는 이미지 디렉토리 (애플릿이나 웹 페이지가 위치한 곳 없음)를 가리킬 것입니다. 'images/picture.jpg' 경로 (초기'/'가 없으면)는 기본 URL을 기준으로하는 디렉토리를 가리 킵니다. –

0

몇 가지 의견은 당신을 위해 명확하게 할 수 있습니다.

//getDocumentbase gets the applet path. 

번호 getDocumentBase()웹 페이지의 경로를 제공합니다. 그러나이 애플릿이 실제로 호출하기 때문에 즉,도 여기도있다 .. 코드베이스를 제공 요식

base = getCodeBase(); 

. 매개 변수가 애플릿 요소에 지정되지 않은 경우 코드베이스는 웹 페이지의 디렉토리에 대해 기본값 인을 기본값으로 사용합니다. 애플릿 요소는 codebase을 선언하지 않으므로 base은 문서 기반과 동일한 URL입니다.


BTW :

code="myapplets/mapplet.class" 

될 ..should 애플릿 요소에서 ..

code="myapplets.mapplet" 

그리고 자바 클래스 이름에 대한 일반적인 용어가 EachWordUpperCase 때문에

는, 클래스 이름을 변경해야합니다 .

Doe the applet declare?

package myapplets; 

은 BTW (2)는

또한 애플리케이션의 웹 섹션 애플릿 클래스의 화상의 내용을 포함하는 폴더가있다.

그 의미는 무엇입니까? 서버 루트에서 사용 된 모든 리소스 (예 : HTML/JSP, Jar 파일 & 이미지)에 대한 전체 경로를 입력하십시오.

0

경로를 확인하십시오. 파일을 폴더에 넣고 JAR 파일로 압축하고 항아리 안의 이미지 파일의 상대 경로를 제공하십시오. 설명 : 애플릿 이름을 demoapp 패키지의 myapp.class로 지정합니다. demoapp 내의 dir "images"에 파일을 저장하고 모든 java 코드에서이 경로와 관련된 경로를 제공하십시오. 이미지 파일을 jar 빌드에 포함하는 것을 잊지 마십시오.

관련 문제