Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package application;
- import javafx.application.Application;
- import javafx.beans.property.SimpleObjectProperty;
- import javafx.beans.property.SimpleStringProperty;
- import javafx.beans.property.StringProperty;
- import javafx.beans.value.ObservableValue;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import javafx.event.EventHandler;
- import javafx.stage.Stage;
- import javafx.scene.Scene;
- import javafx.scene.control.Button;
- import javafx.scene.control.TableColumn;
- import javafx.scene.control.TableColumn.CellDataFeatures;
- import javafx.scene.control.TableView;
- import javafx.scene.control.cell.PropertyValueFactory;
- import javafx.scene.layout.VBox;
- import javafx.util.Callback;
- public class Main extends Application {
- public ObservableList<Person> data = FXCollections.observableArrayList(
- new Person("Jakob", "Schaal", "jakob.schaal@hotmail.com"),
- new Person("Peter", "Müller", "peter.mueller@outlook.com"),
- new Person("Luke", "Skywalker", "luke.skywalker@disney.com")
- );
- @Override
- public void start(Stage primaryStage) {
- try {
- VBox root = new VBox();
- TableView<Person> table = new TableView<>();
- table.setItems(data);
- TableColumn<Person, String> vornamen = new TableColumn<>("Vorname");
- vornamen.setCellValueFactory(new PropertyValueFactory<Person, String>("vorname"));
- TableColumn<Person, String> nachnamen = new TableColumn<>("Nachname");
- nachnamen.setCellValueFactory(new PropertyValueFactory<Person, String>("nachname"));
- TableColumn<Person, String> emails = new TableColumn<>("E-Mail");
- emails.setCellValueFactory(new PropertyValueFactory<Person, String>("email"));
- TableColumn<Person, Button> delete = new TableColumn<>("Löschen");
- delete.setSortable(false); //Nach den Buttons zu sortieren macht nicht wirklich viel Sinn...
- delete.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Person, Button>, ObservableValue<Button>>() {
- @Override
- public ObservableValue<Button> call(
- CellDataFeatures<Person, Button> p) {
- Button b = new Button("Löschen");
- b.setOnAction(new EventHandler<ActionEvent>(){
- @Override
- public void handle(ActionEvent event) {
- data.remove(p.getValue());
- }
- });
- System.out.println(p.getValue());
- return new SimpleObjectProperty<Button>(b);
- }
- });
- table.getColumns().add(vornamen);
- table.getColumns().add(nachnamen);
- table.getColumns().add(emails);
- table.getColumns().add(delete);
- root.getChildren().add(table);
- Scene scene = new Scene(root,400,400);
- primaryStage.setScene(scene);
- primaryStage.show();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- launch(args);
- }
- public class Person{
- private StringProperty vorname;
- private StringProperty nachname;
- private StringProperty email;
- public Person(String vorname, String nachname, String email){
- this.vorname = new SimpleStringProperty(vorname);
- this.nachname = new SimpleStringProperty(nachname);
- this.email = new SimpleStringProperty(email);
- }
- public String getVorname(){
- return vorname.get();
- }
- public void setVorname(String vorname){
- this.vorname.set(vorname);
- }
- public StringProperty vornameProperty(){
- return vorname;
- }
- public String getNachname(){
- return nachname.get();
- }
- public void setNachname(String nachname){
- this.nachname.set(nachname);
- }
- public StringProperty nachnameProperty(){
- return nachname;
- }
- public String getEmail(){
- return email.get();
- }
- public void setEmail(String email){
- this.email.set(email);
- }
- public StringProperty emailProperty(){
- return email;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement