Bonjour,
je suis confronté à un problème d'affichage.
Je désire afficher a l'écran un fichier html via le navigateur par defaut, or en utilisant la fonction browse de java.awt.Desktop rien de ne se passe.
Voici mon code:
J'utilise des préférences utilisateurs dans certains cas, dans lesquelles je définis mon chemin vers le navigateur par défaut (defaultNavigator = "C:\Program Files\...\chrome.exe".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public void openURI(final URI uri) { if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Action.BROWSE)) { try { Desktop.getDesktop().browse(uri); } catch (IOException e) { openFileWithUserNavigator(uri); } } else { openFileWithUserNavigator(uri); } } private void openFileWithUserNavigator(final URI uri) { if (defaultNavigator == null || defaultNavigator.isEmpty()) { setStatusMessage("Pas de navigateur définit."); return; } try { ProcessBuilder builder = new ProcessBuilder(defaultNavigator, uri.toString()); builder.start(); } catch (IOException e) { setStatusMessage("Erreur lors du lancement du navigateur."); } }
Le problème est dans le test avant de faire le "browse" car celui ci est valide donc je fait appel au browse qui ne fonctionne pas dans mon cas. Par contre si a la place je fais directement appel à ma méthode openFileWithUserNavigator alors dans ce cas là j'affiche bien mon fichier html via mon navigateur par défaut.
Une idée sur le test a rajouter afin de bascule dans la partie "else" ?
Partager