Bonjour,
Je voudrais savoir comment peut-on insérer différents éléments dans la même colonne d'un tableView
dans ma vue (FXML) j'ai une combobox qui contient des personnes, un textfield pour saisir le numéro de personne, n bouton ajouter et un table View
fichier fxml
Code XML : 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 <SplitPane dividerPositions="0.3002754820936639" focusTraversable="true" prefHeight="160.0" prefWidth="200.0"> <items> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0"> <children> <TableView fx:id="personnes" minWidth="0.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <columns> <TableColumn prefWidth="200.0" text="Peronnes" fx:id="column"> <cellValueFactory> <PropertyValueFactory property="nom" /> </cellValueFactory> </TableColumn> </columns> </TableView> </children> </AnchorPane> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0"> <children> <ComboBox fx:id="listPeronnes" layoutX="25.0" layoutY="40.0" prefWidth="148.0"> </ComboBox> <TextField layoutX="25.0" layoutY="95.0" prefWidth="149.0" /> <Label layoutX="25.0" layoutY="78.0" prefWidth="66.0" text="numero" /> <Label layoutX="25.0" layoutY="14.0" prefWidth="66.0" text="Personnes" /> <Button onAction="#handleAdd" layoutX="25.0" layoutY="121.0" mnemonicParsing="false" text="Ajouter" /> </children> </AnchorPane> </items> </SplitPane>
pour remplir tableView, l'utilisateur peut soit choisir une personne dans la combobox puis l'jouter en cliquant sur le bouton ajouter, soir de saisir le numéro de personne, et dans ce cas là c'est le numéro qui sera ajouter à la table
J'arrive à inserer le nom mais pas le numéro, je ne vois pas comment faire
Personnes.java
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 import java.net.URL; import java.util.ResourceBundle; import javafx.application.Platform; import javafx.beans.property.ListProperty; import javafx.beans.property.SimpleListProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.fxml.Initializable; import javafx.scene.control.ComboBox; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; import javafx.stage.Stage; public class SampleController implements Initializable { private Stage stage; @FXML protected ComboBox<Personnes> listPeronnes; @FXML protected TableView personnes; @FXML protected TableColumn column; @FXML protected TextField numero; ObservableList<Personnes> liste = FXCollections.observableArrayList(new Personnes("personne 1", 1),new Personnes("Personne 2",2)); protected ListProperty<Personnes> prs=new SimpleListProperty<>(FXCollections.<Personnes>observableArrayList()); @FXML protected void handleAdd() { prs.add(listPeronnes.getSelectionModel().getSelectedItem()); personnes.getItems().setAll(prs); } @Override public void initialize(URL url, ResourceBundle rb) { listPeronnes.getItems().setAll(liste); } }
Merci à vous tous
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 public class Personnes { private StringProperty nom = new SimpleStringProperty(); private IntegerProperty numero = new SimpleIntegerProperty(); public StringProperty nomProperty() { return nom; } public Personnes(String nom,int num) { this.nom.set(nom); this.numero.set(num); } public IntegerProperty numeroProperty() { return numero; } public String getNom() { return nom.get(); } public Integer getNumero() { return numero.get(); } @Override public String toString() { return this.nom.get(); } }
Partager