2013-04-15 60 views
0

我有以下Java小程序。它得到一个文件的绝对文件路径,用户已经选择:将值传递给Java的Java

import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 
import javax.swing.*; 
import java.awt.Color; 
/* 
    <OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" 
      width=150 height=100 
codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0"> 
    <PARAM NAME="code" value="FileApplet.class"> 
    </OBJECT> 
*/ 

public class fileabs extends JApplet 
{ 
    private JTextField tfCount; 
    final JFileChooser fc = new JFileChooser(); 

    public void init() { 
     setBackground(Color.WHITE); 
     JPanel p = new JPanel(new FlowLayout(FlowLayout.CENTER, 15, 15)); 
     p.add(new JLabel("Select File: ")); 
     tfCount = new JTextField(50); 
     tfCount.setEditable(false); 
     p.add(tfCount); 
     JButton b2 = new JButton("Browse..."); 
     p.add(b2); 
     b2.addActionListener(new ActionListener(){ 
      public void actionPerformed(ActionEvent ae) { 
       tfCount.setText("dsds"); 
       int returnVal = fc.showOpenDialog(fileabs.this); 
       tfCount.setText(fc.getSelectedFile().getAbsolutePath()); 
      } 
     }); 

     // p.add(label); 
     add(p); 
    } 
} 

不过,我需要能够用另一种语言(蟒蛇/ Django的)发送给表单。我将如何获取abolute路径的值,以便我可以在javascript中解析它?现在,即使它显示在小程序中,我也无法访问该路径。

+0

Javafx提供了在页面上的javascript和applet中的java之间来回交谈的方式。检查链接发现[这里](http://stackoverflow.com/questions/8566818/is-it-possible-to-make-javafx-web-applet),你会想看看它是如何工作的[这里]( https://blogs.oracle.com/javafx/entry/communicating_between_javascript_and_javafx)。 – Nolo

回答

1

你应该看看使用LiveConnect,它允许一个applet在页面中与JavaScript进行交互,反之亦然。

下面的代码调用页面的全局JavaScript功能setPath有一个参数:

netscape.javascript.JSObject.getWindow(appletInstance) 
    .call("setPath", new Object[] { path }); 

Applet必须与参数mayscript设置为truemayscript开始被允许使用的LiveConnect。