J'essaie de trouver un moyen pour afficher un résultat récupérer depuis mon applet, sans utiliser les alerts. Celles-ci fonctionnent mais uniquement à titre informatif.
Mon application va chercher une image sur le disque dur de l'utilisateur, l'affiche et renvoi en alert (lien) le chemin de cette image. Ce que j'aimerai faire, c'est récupérer ce chemin pour l'insérer dans un champ input, voire afficher l'image dans un formulaire à partir de cette url...
la partie du code "
Code HTML :
<a href="javascript:alert(document.myApplet.getString());">chemin du répertoire</a>
" renvoi le chemin. J'ai tenté de récupérer le document.myApplet.getString() pour l'afficher dans un champ, mais sans succès...
Des idées?
Merci.
code html:
<body bgcolor="#ffffff">
<applet codebase="./" code="test.class" archive="test2.jar" name="myApplet" width="500" height="500" MAYSCRIPT="TRUE"></applet>
<!-- Fonction de test de récupération de données de l'applet -->
<a href="javascript:alert(document.myApplet.getString());">chemin du répertoire</a>
<br>
<script language="javascript">
test = "testtest
document.write('<input type="text" name"libelle" width"500" value = "'+ test +'">');
document.write('<input type="button" value="test" onclick=this.form.libelle.value="azerty">');
</script>
<script type="text/javascript">
var repertoire='chemin';
var testId=document.getElementById('test');
test.value=repertoire;
</script>
<form name="libelle">
<input type="text" name="libelle" width="500" value="" text="test">
<input type="button" value="test" onclick='this.form.libelle.value="'+repertoire+'"'>
<img src="'+repertoire+'">
<!-- onclick='document.forms["libelle"].elements["libelle"].value="document.myapplet.getString();"'> -->
<input type="text" name="test" id="test" value="" />
</form>
</body>
</html>
Code de mon applet java qui affiche et renvoi le chemin du répertoire de l'image:
import java.applet.*;
import java.awt.*;
import java.util.*;
import java.lang.*;
import java.text.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import java.net.URLDecoder;
import javax.swing.JLabel;
import netscape.javascript.JSException;
import netscape.javascript.JSObject;
public class test extends Applet {
String sFileName;
ImageIcon icon;
Image img;
String sjsFileName;
String sjsFilePath;
private JLabel label = new JLabel();
private JSObject jso;
public test() {
Panel p = new Panel();
Font f;
String osname = System.getProperty("os.name","");
if (!osname.startsWith("Windows")) {
f = new Font("Arial",Font.BOLD,10);
} else {
f = new Font("Verdana",Font.BOLD,12);
}
p.setFont(f);
p.add(new Button("Parcourir"));
p.setBackground(new Color(255, 255, 255));
add("North",p);
}
public boolean action(Event evt, Object arg) {
if (arg.equals("Parcourir")) {
System.out.println("OPEN CLICKED");
// cette méthode fonctionne
Frame parent = new Frame();
FileDialog fd = new FileDialog(parent, "Répertoire de l'image:", FileDialog.LOAD);
fd.show();
String selectedItem = fd.getFile();
if (selectedItem == null) {
// no file selected
} else {
// read the file
//System.out.println("reading file " + fd.getDirectory() + File.separator + fd.getFile() );
sFileName = fd.getDirectory() + File.separator + fd.getFile();
displayFile(sFileName);
}
} else return false;
return true;
}
public void paint(Graphics g)
{
int width, height;
if (img!=null) {
width = img.getWidth(this);
height = img.getHeight(this);
if (width < height) {
if (height <= 500) {
g.drawImage(img, 0, 40, this);
}else {
double ratio = 500 / (double) height;
double temp2 = width*ratio;
int temp = (int) temp2;
g.drawImage(img, 0, 40, temp, 500, this);
}
} else {
if (width <= 500) {
g.drawImage(img, 0, 40, this);
}else {
double ratio = 500 / (double) width;
double temp2 = height*ratio;
int temp = (int) temp2;
g.drawImage(img, 0, 40, 500, temp, this);
}
}
}
}
public void displayFile (String sFileName){
System.out.println("file name : " + sFileName);
try {
String slocalFileName = URLDecoder.decode(sFileName, "UTF-8");
System.out.println("slocalFileName : " + slocalFileName);
icon = new ImageIcon(slocalFileName);
img = icon.getImage();
repaint();
}
catch (Exception e)
{
System.out.println("erreur " + e.toString());
}
}
public String getString() {
return sFileName;
}
}