Sie sind auf Seite 1von 6

My Java FX Lab 2013

Implmentation dune TableView avec des donnes importes dun Serveur de fichier et dun serveur de base de donnes

Introduction :
Le projet sappelle LigaBBVA Predictor, ses fonctionnalits seront les suivantes : Faire un suivi temps rel du championnat espagnol de football : Rsultats des matchs Classement Statistiques compltes (buteurs, passeurs ) Implmenter un moteur de recherche intelligent permettant de retrouver les joueurs, les clubs, les statistiques par un traitement en arrire-plan (cache) des donnes saisies Outil de comparaison : Comparer 2 joueurs Comparer 2 clubs Comparer 2 championnats Implmentations de graphiques Prdiction des scores des matchs en se basant sur : Les statistiques des 2 dernires saisons Les statistiques actuelles Les niveaux des joueurs Les ctes des bookmakers (base de donnes bwin et betclic)

Outils : Java FX Java FC Scene Builder (pour construire les composants graphiques) Netbeans 7.2 Mysql 5.5 Hibernate (plus tard) Pour linstant on travaille en mode local.

Mehdi Dinar dinar.mehdi@gmail.com

My Java FX Lab 2013


Code Java FX :
Vu que mon futur site comportera plusieurs modules, jai choisi le modle de rpartition en couches dcran, il sagit de crer plusieurs Screens et dy faire appel dans lobjet Scene de note classe principale LigaBBVA . Pour linstant je commence avec 3 screens qui sont les suivantes :

Les classes Screen1Controller.java, Screen1Controller.java et Screen1Controller.java contiendront les codes de chacun des crans. La construction graphique se fait laide de loutil de Java FX Scene Builder qui nous gnre les fichiers .fxml pour chaque Screen.

Mehdi Dinar dinar.mehdi@gmail.com

My Java FX Lab 2013


Description du problme :
Jai une TableView que jai construite avec Scene Builder (figure ci-dessous)

Elle est compose de 4 colonnes : Logo1 : Contiendra le logo de lquipe jouant domicile Hote : Contiendra le nom de lquipe domicile Visiteur : Contiendra le nom de lquipe qui visite Logo2 : contiendra le logo de lquipe qui visite Ces 4 colonnes sont dclares dans mon code via des objets TableColumn. Commenons par la premire colonne (logo1) : voici la dclaration :

Lobjectif est dimporter des logos, stockes dans un rpertoire x, partir dune liste de clubs que nous allons rcuprer de la base de donnes par 2 requtes : select hote from matchs where Nom_ligue=Liga BBVA and jour=1; select visiteur from matchs where Nom_ligue=Liga BBVA and jour=1; La premire requte nous renvoie la liste des clubs jouant domicile La deuxime requte nous renvoie la liste des clubs visiteurs

Mehdi Dinar dinar.mehdi@gmail.com

My Java FX Lab 2013


Une fois les noms rcuprs, nous les placerons dans la TableView (ce n est pas un problme). Une fois les noms des clubs rcuprs, nous tentons de rcuprer leurs logos respectifs que nous mettrons dans des ImageView que nous intgrerons dans la TableView (et cest l o se situe mon problme) Ces Logos sont stocks dans un rpertoire dont voici lURL : File:///d:/Perso/JavaFXProjects/LigaBBVA/Logos/ Il parait quil faut utiliser la mthode setCellFactory mais je narrive pas en configurer les paramtres. Pour plus de prcisions, tu trouveras ci-dessous le code source de ma classe qui contrle le screen en question et aussi une capture du dploiement graphique Classe Screen3Controller.java :
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package ligabbva; import java.net.URL; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.Button; import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.util.Callback; import javax.swing.table.DefaultTableModel; /** * FXML Controller class * * @author Angie */

Mehdi Dinar dinar.mehdi@gmail.com

My Java FX Lab 2013


public class Screen3Controller implements Initializable, ControlledScreen { ScreensController myController; private DefaultTableModel model; @ FXML private TableView matchs; @ FXML Button jour1; @ FXML TableColumn logo1; @ FXML TableColumn hote; @ FXML TableColumn visiteur; @ FXML TableColumn logo2;

/** * Initializes the controller class. */ @Override public void initialize(URL url, ResourceBundle rb) {
} public void setScreenParent(ScreensController screenParent){ myController = screenParent; } @FXML private void goToScreen1(ActionEvent event){ myController.setScreen(LigaBBVA.screen1ID); } @FXML private void goToScreen2(ActionEvent event){ myController.setScreen(LigaBBVA.screen2ID); } }

Mon fichier Screen3.fxml (Ma fentre graphique) : Page Suivante

Mehdi Dinar dinar.mehdi@gmail.com

Boutons de contrle qui permettront de changer la journe et donc de recharger le contenu de la TableView

My Java FX Lab 2013

Objet TableColumn qui intgrera les ImageView avec les Logos des clubs

Objet TableView qui contient 4 colonnes (voir explication du problme)

Mehdi Dinar dinar.mehdi@gmail.com

Das könnte Ihnen auch gefallen