2012-12-24 4 views
5

से एप्लेट में घोषित विधि को कैसे कॉल करें मैं क्लाइंट के कंप्यूटर पर फ़ाइल खोलने के लिए मूल जावा ऐप्पल बनाने की कोशिश कर रहा हूं। मैं जावास्क्रिप्ट के माध्यम से जावा एप्लेट में ओपनफाइल फ़ंक्शन को कॉल करना चाहता हूं।जावास्क्रिप्ट

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

अद्यतन

जावास्क्रिप्ट सीधे एप्लेट के सार्वजनिक तरीकों या सार्वजनिक चर कॉल करने के लिए अनुमति दी है। जावास्क्रिप्ट एक ऑब्जेक्ट के रूप में एम्बेडेड एप्लेट को मानता है। आईडी के साथ एप्लेट प्रदान करके, जावास्क्रिप्ट

document.Applet_ID.Applet_Method() 

के साथ उपयोग कर सकते हैं और आप इसका उपयोग कर सकते

MyApplet.html

<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

संबंधित मुद्दे