javafx-binding object model to the tableview

来源:互联网 发布:在淘宝怎么开旗舰店 编辑:程序博客网 时间:2024/05/21 11:22
import javafx.application.Application;import javafx.beans.property.SimpleStringProperty;import javafx.collections.FXCollections;import javafx.collections.ObservableList;import javafx.geometry.Insets;import javafx.scene.Group;import javafx.scene.Scene;import javafx.scene.control.Label;import javafx.scene.control.TableColumn;import javafx.scene.control.TableView;import javafx.scene.control.TextField;import javafx.scene.control.cell.PropertyValueFactory;import javafx.scene.layout.VBox;import javafx.scene.text.Font;import javafx.stage.Stage; public class TableViewSample extends Application {     private TableView<Person> table = new TableView<Person>();    private final ObservableList<Person> data =        FXCollections.observableArrayList(            new Person("Jacob", "Smith", "jacob.smith@example.com"),            new Person("Isabella", "Johnson", "isabella.johnson@example.com"),            new Person("Ethan", "Williams", "ethan.williams@example.com"),            new Person("Emma", "Jones", "emma.jones@example.com"),            new Person("Michael", "Brown", "michael.brown@example.com")        );       public static void main(String[] args) {        launch(args);    }     @Override    public void start(Stage stage) {        Scene scene = new Scene(new Group());        stage.setTitle("Table View Sample");        stage.setWidth(450);        stage.setHeight(500);         final Label label = new Label("Address Book");        label.setFont(new Font("Arial", 20));         table.setEditable(true);         TableColumn firstNameCol = new TableColumn("First Name");        firstNameCol.setMinWidth(100);        firstNameCol.setCellValueFactory(                new PropertyValueFactory<Person, String>("firstName"));         TableColumn lastNameCol = new TableColumn("Last Name");        lastNameCol.setMinWidth(100);        lastNameCol.setCellValueFactory(                new PropertyValueFactory<Person, String>("lastName"));         TableColumn emailCol = new TableColumn("Email");        emailCol.setMinWidth(200);        emailCol.setCellValueFactory(                new PropertyValueFactory<Person, String>("email"));         table.setItems(data);        table.getColumns().addAll(firstNameCol, lastNameCol, emailCol);         final VBox vbox = new VBox();        vbox.setSpacing(5);        vbox.setPadding(new Insets(10, 0, 0, 10));        vbox.getChildren().addAll(label, table);         ((Group) scene.getRoot()).getChildren().addAll(vbox);         stage.setScene(scene);        stage.show();    }     public static class Person {         private final SimpleStringProperty firstName;        private final SimpleStringProperty lastName;        private final SimpleStringProperty email;         private Person(String fName, String lName, String email) {            this.firstName = new SimpleStringProperty(fName);            this.lastName = new SimpleStringProperty(lName);            this.email = new SimpleStringProperty(email);        }         public String getFirstName() {            return firstName.get();        }         public void setFirstName(String fName) {            firstName.set(fName);        }         public String getLastName() {            return lastName.get();        }         public void setLastName(String fName) {            lastName.set(fName);        }         public String getEmail() {            return email.get();        }         public void setEmail(String fName) {            email.set(fName);        }    }} 
0 0
原创粉丝点击