Salut à tout le monde !!!
Quelqu'un pourrait-il nous aider parce que apparemment, j'ai le même problème et jusque là je n'avance pas sur mon projet.
Salut à tout le monde !!!
Quelqu'un pourrait-il nous aider parce que apparemment, j'ai le même problème et jusque là je n'avance pas sur mon projet.
Plus de détails, du code montrant ce que tu tentes de faire ou a déjà fait et un sujet dédié peut-être ?
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
bonjour Mr D'abord j'ai une classe personne et une classe fille nommée gérant et dans cette classe gérant j'ai une propriété qui est de type personne ayant les attributs prénom, nom etc.
après jai fai une jointure entre gerant et personne afin de recupérer l'ensemble des gérants et les personnes liées sous forme de liste... et les ajouter dans le tableview avec tableaugerant.getItems().add(p); p etant de type gérant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 @FXML private TableView<Gerant> tableaugerant; //@FXML private TableColumn<Gerant, Personne> idgerantcolumn; @FXML private TableColumn<Gerant, Personne> codegerantcolumn; @FXML private TableColumn<Gerant, Personne> prenomgerantcolumn; @FXML private TableColumn<Gerant, Personne> nomgerantcolumn; //affichage tableau gérant idgerantcolumn.setCellValueFactory(new PropertyValueFactory<>("id.getIdpersonne")); codegerantcolumn.setCellValueFactory(new PropertyValueFactory<>("code")); prenomgerantcolumn.setCellValueFactory(new PropertyValueFactory<>("prenom")); prenomgerantcolumn.setCellFactory(column -> new EtudiantCell()); nomgearntcolumn.setCellValueFactory(new PropertyValueFactory<>("nom"));
maintenant tout mon problème se trouve à l'affichage des champs relatifs à la classe personne parsk ceux liés à la classe Gerant fonctionne très bien (secure par exple).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //voici une partie du code de la classe gérant public class Gerant implements java.io.Serializable { private GerantId id; private Personne personne; private String secure; }
Lien vers la discussion de référence : Java fx, afficher un tableView ayant une liste objet (lui meme contient plusieurs objets)
Et donc du coup tu es passé avec le débogueur dans EtudiantCell pour voir ce qui n'allait pas et pourquoi ça n'affichait pas ce que tu voulais ?
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
Et ton code est ? Tu as repris le mien tel quel ? Il s'agissait d'une piste de recherche pas d'un exemple fonctionnel.
Et ta classe Personne est ?
Si comme l'auteur initial de la question tu ne donnes pas un minimum de trucs qui permettent de tester ton problème histoire que d'autres qui sont déjà occupés par autre chose ne doivent pas tout recoder par eux-mêmes, les réponses vont mettre longtemps a arriver...![]()
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
Merci...
Bon avant même de jeter un coup d’œil dessus, je vais recommencer encore une fois par un cours de pédagogie classique : quand vous avez un soucis dans un gros programme, plutôt que de bidouiller votre gros programme (ce qui est compliqué et va sans doute le casser) et de nous le recopier ici (ce qui ne va pas faire plaisir à votre employeur ou votre équipe car vous allez divulguer vos secrets), c'est beaucoup plus pratique pour vous de vous créer une version simplifiée du problème à coté dans un programme de test ! Et lorsque vous avez trouvé/prouvé la solution dans votre programme de test ALORS vous l’intégrez dans votre gros programme !
Déjà parce que ça vous permet de vous focaliser uniquement sur le problème en question (et comme ça ça vous permet aussi parfois de trouver la solution tout seul) et pas 36 autres sources potentielle de plantage.
Et ensuite car ça permet sans soucis de partager le code publiquement avec autrui !
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
Merci pr l'info et j'en tiendrai compte la prochaine fois
Une solution simpliste parmi d'autres:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 package tablecompose; public final class GerantId { private static int ID = 0; private final int id = ID++; public int getId() { return id; } }
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 package tablecompose; public final class Gerant { private final GerantId id; private final Personne personne; public Gerant(GerantId id, Personne personne) { this.id = id; this.personne = personne; } public GerantId getId() { return id; } public Personne getPersonne() { return personne; } }
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 package tablecompose; public final class Personne { private final int idpersonne; private final String prenom; private final String nom; public Personne(int idpersonne, String prenom, String nom) { this.idpersonne = idpersonne; this.prenom = prenom; this.nom = nom; } public int getIdpersonne() { return idpersonne; } public String getPrenom() { return prenom; } public String getNom() { return nom; } }
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 package tablecompose; import java.util.stream.IntStream; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.TableCell; 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 final class Main extends Application { public static void main(final String... args) { launch(args); } private TableView<Gerant> tableaugerant; private TableColumn<Gerant, GerantId> codegerantcolumn; private TableColumn<Gerant, Personne> prenomgerantcolumn; private TableColumn<Gerant, Personne> nomgerantcolumn; @Override public void start(final Stage primaryStage) throws Exception { tableaugerant = new TableView<>(); codegerantcolumn = new TableColumn<>("Code"); codegerantcolumn.setCellValueFactory(new PropertyValueFactory<>("id")); codegerantcolumn.setCellFactory(tableColumn -> new GerantIdTableCell()); prenomgerantcolumn = new TableColumn<>("Prenom"); prenomgerantcolumn.setCellValueFactory(new PropertyValueFactory<>("personne")); prenomgerantcolumn.setCellFactory(tableColumn -> new PersonneTableCell(PersonneTableCell.Flavor.FORNAME)); nomgerantcolumn = new TableColumn<>("Nom"); nomgerantcolumn.setCellValueFactory(new PropertyValueFactory<>("personne")); nomgerantcolumn.setCellFactory(tableColumn -> new PersonneTableCell(PersonneTableCell.Flavor.NAME)); tableaugerant.getColumns().setAll(codegerantcolumn, prenomgerantcolumn, nomgerantcolumn); tableaugerant.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY); final StackPane root = new StackPane(tableaugerant); final Scene scene = new Scene(root); primaryStage.setScene(scene); primaryStage.setWidth(500); primaryStage.setHeight(500); primaryStage.show(); // final String[] fornames = {"Henry", "Babette", "Abdel", "Choi"}; final String[] names = {"Wood", "Dupond", "Kadir", "Wang"}; IntStream.range(0, fornames.length) .mapToObj(index -> { final String forname = fornames[index]; final String name = names[index]; final Personne personne = new Personne(index, forname, name); final GerantId geranId = new GerantId(); final Gerant gerant = new Gerant(geranId, personne); return gerant; }) .forEach(tableaugerant.getItems()::add); } private static class GerantIdTableCell extends TableCell<Gerant, GerantId> { @Override protected void updateItem(GerantId item, boolean empty) { super.updateItem(item, empty); String text = null; if (!empty && item != null) { text = String.valueOf(item.getId()); } setText(text); } } private static class PersonneTableCell extends TableCell<Gerant, Personne> { public static enum Flavor { FORNAME, NAME; } private Flavor flavor; public PersonneTableCell(Flavor flavor) { this.flavor = flavor; } @Override protected void updateItem(Personne item, boolean empty) { super.updateItem(item, empty); String text = null; if (!empty && item != null) { switch (flavor) { case FORNAME: text = item.getPrenom(); break; case NAME: text = item.getNom(); break; } } setText(text); } } }
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
Merci!!! Mr, mon problème est résolu, je vous remercie profondément
Maintenant je demandais si vs auriez par hasard des liens à me fournir histoire de mieux les comprendre et les appliquer dans d'autres éventuelles situations...
Encore merci Mr et chapeau à vous.
Euh....
Je ne sais pas moi, faire des recherches sur Google, lire des blogs, cours ou livres ou même du code source de projet visibles sur github ou autres, être curieux, savoir fouiller, faire des tests et expériences jusqu'à ce que ça marche...
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
Partager