Insérer différents éléments dans la même colonnes d'un tabelView
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:
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
Code:
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);
}
} |
Personnes.java
Code:
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();
}
} |
Merci à vous tous