cs_anzize
Messages postés41Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention 9 juin 2005
-
19 mars 2005 à 13:48
cs_anzize
Messages postés41Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention 9 juin 2005
-
26 mars 2005 à 10:47
Bnojour tout le monde !
J'ai un petit soucis avec un JEditorPane (ou même un JTextPane).
Ayant implementé HyperlinkListener, les liens html fonctionnent bien..
LE seul truc, c'est que je voudrais que mes pages soient ouvertes à partir d'IE ou Netscape mais pas dans le même JEditorPane (je ne veux pas de monJEditorPane.setPage() mais plutôt d'un monNavigateur.afficherLaPageHTML() ).
cs_Yenapa
Messages postés67Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention26 juin 2009 21 mars 2005 à 18:37
Salut
J'avais trouvé ca sur le net mais je ne sais plus ou... en tout cas merci a son auteur, c'est bien utile
T'a plus qu'a faire un displayURL("www.google.fr") par exemple. (Ca marche sous windows c'est sur. Sous linux et mac normallement ca tourne mais g pas testé)
public static void displayURL(String url)
{
boolean windows = isWindowsPlatform();
String cmd = null;
try
{
if (windows)
{
// cmd = 'rundll32 url.dll,FileProtocolHandler http://...' cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
Process p = Runtime.getRuntime().exec(cmd);
}
else
{
// Under Unix, Netscape has to be running for the "-remote"
// command to work. So, we try sending the command and
// check for an exit value. If the exit command is 0,
// it worked, otherwise we need to start the browser.
// cmd = 'netscape -remote openURL(http://www.javaworld.com)' cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
Process p = Runtime.getRuntime().exec(cmd);
try
{
// wait for exit code -- if it's 0, command worked,
// otherwise we need to start the browser up.
int exitCode = p.waitFor();
if (exitCode != 0)
{
// Command failed, start up the browser
// cmd = 'netscape http://www.javaworld.com' cmd = UNIX_PATH + " " + url;
p = Runtime.getRuntime().exec(cmd);
}
}
catch(InterruptedException x)
{
System.err.println("Error bringing up browser, cmd='" +
cmd + "'");
System.err.println("Caught: " + x);
}
}
}
catch(java.io.IOException x)
{
// couldn't exec browser
System.err.println("Could not invoke browser, command=" + cmd);
System.err.println("Caught: " + x);
}
}
/**
* Try to determine whether this application is running under Windows
* or some other platform by examing the "os.name" property.
*
* @return true if this application is running under a Windows OS
*/
public static boolean isWindowsPlatform()
{
String os = System.getProperty("os.name");
if ( os != null && os.startsWith(WIN_ID))
return true;
else
return false;
}
// Used to identify the windows platform.
private static final String WIN_ID = "Windows";
// The default system browser under windows.
private static final String WIN_PATH = "rundll32";
// The flag to display a url.
private static final String WIN_FLAG = "url.dll,FileProtocolHandler";
// The default browser under unix.
private static final String UNIX_PATH = "netscape";
// The flag to display a url.
private static final String UNIX_FLAG = "-remote openURL";
cs_anzize
Messages postés41Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention 9 juin 2005 26 mars 2005 à 10:47
Hi !
Ca marche trop bien (seulement pour une applet à cause de getAppletContext()). Ca m'évite d'aller détecter le systeme du client puis de me servir d'un fichier dll ce qui signifie qu'il faut que mon applet ait l'autorisation de le faire.
Par contre avec cette méthode, que ce soit avec n'importe quel system, ça marche san probleme.
Il fo dire que ça ne marche que si ton applet est lancée à partir d'un navigateur et non de l'applet viewer. Pour une appli normale, ça ne marche pas du tout et je pense que c'est la méthode que tu as donnée auparavant qui doit s'appliquer !