2012-12-24 3 views
5

기본 Java 애플릿을 만들어 클라이언트 컴퓨터에서 파일을 엽니 다. 아래 자바 애플릿에서 자바 스크립트를 통해 openFile 함수를 호출하고 싶습니다. 내 웹 페이지의 body 태그 사이에자바에서 애플릿으로 선언 된 메소드를 호출하는 방법

import java.awt.Desktop; 
import java.io.File; 
import java.io.IOException; 

import javax.swing.JApplet; 

public class Test extends JApplet { 
    public void openFile(String filePath) { 
     File f = new File(filePath); 

     try { 
      Desktop.getDesktop().open(f); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

나는 다음과 같은 한 :

TypeError: Object # has no method 'openFile'

사람이 내가 필요한 것을 알고 있습니까 : 나는 페이지를로드 할 때

<applet code="Test.class" height="0" width="0"></applet> 

<script type="text/javascript"> 
    document.applets[0].openFile("C:\\test.log"); 
</script> 

내가 오류 이 오류를 수정하고 애플릿을 작동 시키려면 어떻게해야합니까?

+0

애플릿은 버전 제어 시스템의 구성 요소 별도의 웹 서비스는 파일을 "체크 아웃"할 때 클라이언트 컴퓨터에 파일을 복사하지만 동시에 기본 텍스트 편집기에서 자동으로 열려고합니다. 텍스트 파일을 여는 더 쉬운 방법을 생각하면 나는 모든 귀입니다. – Daniel

답변

6
<script src= 
    "http://www.java.com/js/deployJava.js"></script> 
<script> 
    <!-- applet id can be used to get a reference to 
    the applet object --> 
    var attributes = { id:'mathApplet', 
     code:'jstojava.MathApplet', width:1, height:1} ; 
    var parameters = {jnlp_href: 'math-applet.jnlp'} ; 
    deployJava.runApplet(attributes, parameters, '1.6'); 
</script> 

참조 : 자바 스크립트가 직접 애플릿의 공개 방법이나 공용 변수를 호출 할 수있다

Invoking Applet Methods From JavaScript

업데이트. 자바 스크립트는 임베디드 애플릿을 객체로 간주합니다. ID로 애플릿을 제공함으로써,

MyApplet.html, 자바 스크립트는

document.Applet_ID.Applet_Method() 

에 액세스 할 수 있습니다 그리고 당신은이를 사용할 수 있습니다

<html> 
<head> 
<script language="Javascript"> 
function accessAppletMethod() 
{ 
    document.getElementById("AppletABC").appendText("Applet Method"); 
} 
</script> 

<title>Testing</title></head> 
<body onload="accessAppletMethod()"> 

<h1>Javascript acess Applet method</h1> 
<applet width=300 height=100 id="AppletABC" 
code="JavaScriptToJava.class"> 
</applet> 

</body> 
</html> 

JavaScriptToJava.java

import java.applet.Applet; 
import java.awt.FlowLayout; 
import java.awt.TextArea; 

public class JavaScriptToJava extends Applet{ 

    TextArea textBox; 

    public void init(){ 
     setLayout(new FlowLayout()); 
     textBox = new TextArea(5,40); 
     add(textBox); 
    } 

    public void appendText(String text){ 
     textBox.append(text); 
    }  
} 
+2

'getElementById'보다 어떻게 읽을 수 있습니까? – Ian

+2

그리고 언제부터'document.Applet_ID'를 할 수 있습니까? – Ian

+0

@ 대니얼 지금, 내 업데이 트를 통해 – Ravi

관련 문제