Bonjour,
J’aimerais savoir comment utiliser l'API de Google concernant les Charts, dans mon application java (NetBeans IDE) ?
Quelqu'un saurait-il me guider un peu ?
Merci d'avance pour votre attention.
Bonjour,
J’aimerais savoir comment utiliser l'API de Google concernant les Charts, dans mon application java (NetBeans IDE) ?
Quelqu'un saurait-il me guider un peu ?
Merci d'avance pour votre attention.
Bonjour,
Google Chart est une API HTML5 (+JavaScript) donc il te faut 1) une connexion internet active et 2) la possibilité d'afficher du HTML/d’intégrer un navigateurs embarqué dans une application Java.
Coté AWT, tu peux oublier.
Coté Swing, je ne sais pas si JEditorPane supporterai GoogleChart vu son grand age + le fait que son support de HTML 4 n'est même pas complet.
Coté SWT, aucune idée.
Coté NetBeans Platform, aucune idée (a priori voir Swing).
Coté Eclipse RPC, aucune idée (a priori voir SWT).
Coté JavaFX, il suffit d'utiliser le contrôle WebView. Par exemple :
TestPie.html (il s'agit en fait du code de test disponible sur le didacticiels de Google Chart)
Code HTML : 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <html> <head> <!--Load the AJAX API--> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> // Load the Visualization API and the piechart package. google.load('visualization', '1.0', {'packages':['corechart']}); // Set a callback to run when the Google Visualization API is loaded. google.setOnLoadCallback(drawChart); // Callback that creates and populates a data table, // instantiates the pie chart, passes in the data and // draws it. function drawChart() { // Create the data table. var data = new google.visualization.DataTable(); data.addColumn('string', 'Topping'); data.addColumn('number', 'Slices'); data.addRows([ ['Mushrooms', 3], ['Onions', 1], ['Olives', 1], ['Zucchini', 1], ['Pepperoni', 2] ]); // Set chart options var options = {'title':'How Much Pizza I Ate Last Night', 'width':400, 'height':300}; // Instantiate and draw our chart, passing in some options. var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, options); } </script> </head> <body> <!--Div that will hold the pie chart--> <div id="chart_div"></div> </body> </html>
TestPie.java
Ici, j'utilise un contenu statique : c'est a dire que le HTML est déjà pré-généré. Le fichier HTML se trouve dans le même package que le fichier Java. Il est chargé au démarrage de l'application et si une connexion internet est active, il ira construire et afficher le graphique en camembert.
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
27
28 package googlechart; import java.net.URL; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.scene.web.WebView; import javafx.stage.Stage; public class TestPie extends Application { @Override public void start(Stage primaryStage) { final URL url = getClass().getResource("TestPie.html"); final WebView webView = new WebView(); webView.getEngine().load(url.toExternalForm()); final StackPane root = new StackPane(); root.getChildren().add(webView); final Scene scene = new Scene(root, 500, 500); primaryStage.setTitle("Test Google Chart"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Cependant il est possible que ton app construise une chaine au format HTML avec ses propres données de manière à montrer des données générées dynamiquement par l'app. On place alors ce contenu HTML dans un fichier temporaire et on l'affiche ensuite dans WebView de manière similaire a ce qui est fait ici avec le contenu statique.
Il est de plus possible de permettre au code Java de dialoguer avec le code JavaScript et vice versa ce qui devrait permettre de pouvoir modifier le contenu de la page au vol. Plus d'info dans la FAQ JavaFX.
Merci de penser au tagquand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Il y a une solution en embarquant dans ton appli swing un browser chromium.
La société teamdev a développé une bibliothèque JxBrowser qui permet de faire exécuter du code HTML5 AJAX dans une appli desktop.
Regarde le tuto de Vladimir Ikryanov à l'adresse suivante : http://java.dzone.com/articles/google-maps-java-swing.
Bon courage
Développeur Java
Site Web
Partager