2009-01-02 3 views
4

아마도 여기서는 간단한 내용이 누락되었지만 다른 곳에서는 답을 찾을 수 없습니다. GWT 코드에 애플릿을 표시하고 싶습니다.GWT 페이지에 자바 애플릿을 표시하는 방법은 무엇입니까?

OS : 윈도우 XP 자바 : JDK는 1.6.0_10 기타 : GWT, GWT-EXT 여기에 2.0.5

는 (분명히 테스트 간체) 애플릿입니다 : 여기

package foo.applet; 

import javax.swing.JApplet; 
import java.awt.Graphics; 

public class HelloApplet extends JApplet 
{ 
    public void paint(Graphics g) 
    { 
     g.drawRect(0, 0, 
        getSize().width - 1, 
        getSize().height - 1); 
     g.drawString("Hello world!", 5, 15); 
    } 
} 

입니다 코드를 호출 :


package foo.applet; 

import com.google.gwt.user.client.ui.HTML; 
import com.gwtext.client.widgets.Panel; 


public class AppletPanel extends Panel 
{ 
public AppletPanel() 
{ 
    HTML applet = new HTML(); 
    applet.setHTML("<applet name=\"HelloApplet\" code=\"HelloApplet.class\" width=\"300\" height=\"300\""); 
    this.add(applet); 
} 

}

호스트 모드로 앱을 실행하면 jvm이 충돌합니다 (Sun에 1425130 번 문제 제기).

은 분명히
 [ERROR] Errors in 'file:/C:/<blah>/applet/HelloApplet.java' 
      [ERROR] Line 3: The import javax.swing cannot be resolved 
      [ERROR] Line 4: The import java.awt cannot be resolved 
      [ERROR] Line 6: JApplet cannot be resolved to a type 
      [ERROR] Line 8: Graphics cannot be resolved to a type 
      [ERROR] Line 11: The method getSize() is undefined for the type HelloApplet 
      [ERROR] Line 12: The method getSize() is undefined for the type HelloApplet 

좀 애플릿 라이브러리를 실종 해요,하지만 난 JDK의 모든 항아리를 통해 grepped했습니다 내가 브라우저에서 실행하기위한 GWT 코드를 컴파일 할 때

,이 얻을 JApplet 또는 awt (plugin.jar, resources.jar, rt.jar, deploy.jar, javaws.jar)를 나열하는 모든 것을 포함하여 시도했습니다.

또한이 문제를 해결하면 곧바로 숨어있는 또 다른 문제가 있음을 확신하지만 다른 질문을 위해이를 저장합니다.

감사합니다.


기존 응용 프로그램은 애플릿이 아닙니다. 두꺼운 클라이언트 스윙 응용 프로그램입니다. 고객이 브라우저 클라이언트를 원하기 때문에 애플릿으로 실행하기 위해 해킹했습니다. 이것이 가장 빠른 방법입니다.

GawT가 JPanel 솔루션을 허용하는지 여부는 알 수 없습니다. 앱은 GWT가 구문 분석 할 수있는 방식으로 작성되지 않았습니다. 즉, GWT API를 사용하지 않고 Swing API를 사용하고 있습니다. AFAIK, Swing과 GWT를 섞을 수있는 유일한 방법은 애플릿 방식입니다.

나는 뭔가를 놓친가요?

답변

-1

"가져 오기 javax.swing을 확인할 수 없습니다."- 죄송합니다. 저는 GWT Maven이 아니지만이 오류는 classpath-esque입니다. GWT 같은 소리는 JVM 용 rt.jar을 찾을 수 없습니다.

1

구글은 this을 찾았습니다. "이전 포스터가 맞다. 셸은 플래시 나 애플릿과 같은 내장 된 것들을 처리 할 수 ​​없다. 셸 내부에서 브라우저를 실행하는 데 사용되는 SWT 구성 요소에는 몇 가지 제한이있다. 이 문제는 향후 업데이트를 위해 계속주의를 기울여야 할 수도 있습니다. "

마치 할 수없는 것처럼 보입니다.

4

는 애플릿 코드를 컴파일하는 GWTCompiler를 사용하지 마십시오. 애플릿 코드 만 포함하는 두 번째 모듈 (또는 프로젝트)을 만드는 것이 좋습니다. 표준 Javac 컴파일러 (또는 IDE/ant)를 사용하여 별도의 JAR 파일로 컴파일

GWTCompiler는 Java 라이브러리의 하위 집합을 사용하며 결국 Javascript로 실행될 코드를 생성하는 데에만 사용해야합니다.

0

라이트 헤비급 앱은 GWT와 JNLP를 혼합 할 수 있습니다. 그러면 우리는 더 큰 항아리를 사람들의 기계 위에 투명하게 얻을 수 있습니다. 예를 들어 Batik 툴킷이나 다른 SVG 관련 기능을 사용하여 SVG를 내 GWT 앱에 사용하고 png 또는 다른 래스터 형식 만 사용하도록 강요하고 싶습니다.

  • 초심자는 - 나는 gwt 응용 프로그램에 대한 연구를하는 동안이 발견 당신은 또한 [email protected]
1

날이에 의견을 우편으로 할 수 있으며,이 오래된 스레드 경우에도 내가 gwt 내부에서 애플릿을 실행하는 메소드를 게시 할 것이라고 생각했습니다.

먼저 애플릿 용 프로젝트와 gwt 프로젝트 두 가지 프로젝트를 만듭니다. 애플릿을 정상적으로 만드십시오.

애플릿을 jar하십시오.

.jarjarsigner으로 서명하십시오.

정상적으로 gwt 모듈을 만드십시오.

애플릿을 포함하는이 같은 애플릿 태그와 gwt HTML 개체를 사용

(applet MAYSCRIPT code = 'com.myapplet.MyApplet' id ='myApplet' jnlp_href = '/spplets/MyApplet.jnlp', width=500, height=400)(/applet)

은 단순히이 ContentPanel로 HTML 위젯을 추가하고 GUI 부분이 이루어집니다.

애플릿 .jar은 gwt 프로젝트의/war에 있어야합니다.

.jar과 함께 애플릿을 실행하려면 .jnlp 파일을 작성해야합니다.

애플릿을 gwt에 포함시키고 호스트 또는 프로덕션 모드로 실행합니다. 열쇠는 .JAR에 서명하고 .JNLP

+0

으로 시작하는 것입니다! 감사! – user1448906