IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

TableView<String> contient les String mais pas affichées


Sujet :

JavaFX

  1. #1
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut TableView<String> contient les String mais pas affichées
    Bonjour,

    J'ai une que je rempli avec .
    Il n'y a que une colonne.

    Le problème est que les String sont bien présentes, parce que j'arrive à les récupérer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableViewFiltre.getSelectionModel().getSelectedItem()
    qui me renvoie la String correspondante...les données sont correctes.

    Mais les cellules sont visuellement vides...

    Manifestement je dois loupé qlq chose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TableView<String> tableViewFiltre;
    String filtreSur = "Fabriquant";
     
    TableColumn nomCol = new TableColumn(filtreSur);
     
    tableViewFiltre.getColumns().setAll(nomCol);
     
    tableViewFiltre.setItems(xxx.lireFabriquants());
    Merci d'avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Avec un exemple simple en etat de fonctionnement ca serait mieux, paske bon la.........................................................................................

    Qu'as-tu mis comme cellValueFactory sur ta colonne ?
    Merci de penser au tag quand 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

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut
    Pardon...

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    package tableviewtest;
     
    import java.util.ArrayList;
    import java.util.List;
    import javafx.application.Application;
    import javafx.beans.value.ChangeListener;
    import javafx.beans.value.ObservableValue;
    import javafx.collections.FXCollections;
    import javafx.collections.ObservableList;
    import javafx.scene.Scene;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.layout.StackPane;
    import javafx.stage.Stage;
     
    public class TableViewTest extends Application {
        TableView<String> tableViewTest = new TableView<>();
     
        @Override
        public void start(Stage primaryStage) {
            List list = new ArrayList();
            ObservableList<String> data;
     
            list.add("String 1");
            list.add("String 2");
            list.add("String 3");
            list.add("String 4");
     
            data = FXCollections.observableList(list);
     
            TableColumn nomCol = new TableColumn("FiltreSur");
            nomCol.setCellValueFactory(new PropertyValueFactory<>("FiltreSur"));
     
            tableViewTest.getColumns().setAll(nomCol);
     
            tableViewTest.setItems(data);     
     
            tableViewTest.getSelectionModel().selectedIndexProperty().addListener(new RowSelectChangeListener());         
     
            StackPane root = new StackPane();
            root.getChildren().add(tableViewTest);
     
            Scene scene = new Scene(root, 300, 250);
     
            primaryStage.setTitle("TableViewTest");
            primaryStage.setScene(scene);
            primaryStage.show();    }
     
        private class RowSelectChangeListener implements ChangeListener {
            @Override
            public void changed(ObservableValue observable, Object oldValue, Object newValue) {
                System.out.println("tableviewtest.TableViewTest.RowSelectChangeListener.changed()selected = " + tableViewTest.getSelectionModel().getSelectedItem());
            }
        }
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            launch(args);
        }
    }
    Voilà ce que ça sort sur la console en cliquant successivement sur chaque ligne:

    tableviewtest.TableViewTest.RowSelectChangeListener.changed()selected = String 1
    tableviewtest.TableViewTest.RowSelectChangeListener.changed()selected = String 2
    tableviewtest.TableViewTest.RowSelectChangeListener.changed()selected = String 3
    tableviewtest.TableViewTest.RowSelectChangeListener.changed()selected = String 4

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Citation Envoyé par genamiga Voir le message
    Pardon...

    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
     
            ObservableList<String> data;
     
            list.add("String 1");
            list.add("String 2");
            list.add("String 3");
            list.add("String 4");
     
            data = FXCollections.observableList(list);
     
            TableColumn nomCol = new TableColumn("FiltreSur");
            nomCol.setCellValueFactory(new PropertyValueFactory<>("FiltreSur"));
     
            tableViewTest.getColumns().setAll(nomCol);
     
            tableViewTest.setItems(data);


    Je crois que tu n'as pas bien compris ce que faisait PropertyValueFactory. Cette classe sert à extraire une propriété nommée de l'objet ciblé.

    Donc en fait là, tu cherches à extraire la propriété FilreSur dans la classe String... propriété qui n'existe pas bien sur.

    Essaie plutôt un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nomCol.setCellValueFactory(feature -> {
        final String value = feature.getValue();
        return new SimpleStringProperty(value);
    });
    Merci de penser au tag quand 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

  5. #5
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut
    cela ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     error: cannot find symbol
        final String value = feature.getValue();
      symbol:   method getValue()
      location: variable feature of type Object

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Tu n'as pas donné un type correcte à ta colonne (vi les genérics quand y en a trop ca foire souvent).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableColumn<String, String> nomCol
    Merci de penser au tag quand 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

  7. #7
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2008
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 251
    Points : 192
    Points
    192
    Par défaut
    Mais quelle andouille je suis...

    C'est comme les fautes d'orthographe...on passe et repasse dessus sans les voir...

    Grand merci.

  8. #8
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Pas forcement ; qqun qui s'y connaît un peu plus a fond sur les generics pourra sans doute expliquer le pourquoi du comment mais il y a parfois des erreurs qui sont incompréhensibles (pour moi).
    Quand je vois TableColumn pour moi c'est la meme chose que TableColumn<Object, Object> (ou TableColumn<?, ?>) et donc je m'attend a ce que le type de feature dans la lambda soit CellDataFeatures<Object, Object> (ou CellDataFeatures<?, ?>) et donc qu'il se plaigne que value ne soit pas une String. Ok ca je comprendrai... mais en fait non, a la place le compilateur nous sort que feature est de type Object et donc ne contient pas de méthode getValue()...........................
    Merci de penser au tag quand 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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [9i] Crypter les données mais pas la structure
    Par nuke_y dans le forum Oracle
    Réponses: 38
    Dernier message: 27/02/2006, 11h23
  2. CSS : Bordure sur les liens mais pas sur les images ?
    Par monstroplante dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/02/2006, 14h18
  3. [string] vérifier si une string en contient une autre
    Par vasilov dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/12/2005, 14h50
  4. [MFC] Fermer les Popup, mais pas l'appli
    Par Grey dans le forum MFC
    Réponses: 4
    Dernier message: 16/11/2005, 20h30
  5. [CSS] border-collapse sur les TR mais pas sur les TD.
    Par hpfx dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/04/2005, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo