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
| import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.MouseButton;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
import jfxtras.labs.scene.control.BeanPathAdapter;
import java.util.ArrayList;
import java.util.List;
public class TestAppl extends Application {
private TableView<Personne> tv;
private TextField tfNom;
private TextField tfPrenom;
private ObservableList<Personne> personnes;
private Personne p = new Personne();
private BeanPathAdapter<Personne> personPA = new BeanPathAdapter<>(p);
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Test de TableView");
Scene scene = new Scene(new BorderPane(), 800, 500);
primaryStage.setScene(scene);
PersonneDAO personneDAO = new PersonneDAO();
HBox pan = new HBox();
pan.setPadding(new Insets(10, 10, 10, 10));
pan.setSpacing(5);
tfNom = new TextField();
tfPrenom = new TextField();
pan.getChildren().addAll(tfNom, tfPrenom);
((BorderPane) scene.getRoot()).setTop(pan);
tv = new TableView<>();
TableColumn<Personne, String> nomCol = new TableColumn("Nom");
nomCol.setCellValueFactory(new PropertyValueFactory("nom"));
TableColumn<Personne, String> prenomCol = new TableColumn("Prénom");
prenomCol.setCellValueFactory(new PropertyValueFactory("prenom"));
tv.getColumns().addAll(nomCol, prenomCol);
personnes = FXCollections.observableArrayList(personneDAO.getPersonnes());
tv.getItems().addAll(personnes);
tv.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
if (mouseEvent.getButton().equals(MouseButton.PRIMARY)) {
if (mouseEvent.getClickCount() == 1) {
personPA.setBean(tv.getSelectionModel().getSelectedItem());
personPA.bindBidirectional("nom", tfNom.textProperty());
personPA.bindBidirectional("prenom", tfPrenom.textProperty());
}
}
}
});
((BorderPane) scene.getRoot()).setCenter(tv);
primaryStage.show();
}
public static void main(String[] args) {
Application.launch(args);
} |
Partager