我有以下Java applet。它获取用户选择的文件的绝对文件路径:
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);
}
}
但是,我需要能够将其发送到另一种语言的表单(python / django)。我如何获取abolsute路径的值,以便我可以在javascript中解析它?现在,我无法访问路径,即使它显示在applet中。
答案 0 :(得分:1)
您应该考虑使用LiveConnect,它允许applet与页面中的JavaScript交互,反之亦然。
以下代码使用单个参数调用页面中的全局JavaScript函数setPath
:
netscape.javascript.JSObject.getWindow(appletInstance)
.call("setPath", new Object[] { path });
必须使用设置为mayscript
或true
的参数mayscript
启动小程序才能使用LiveConnect。