Advertisement
Guest User

test.java

a guest
Sep 19th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.08 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5. import javafx.application.Application;
  6. import javafx.beans.property.SimpleStringProperty;
  7. import javafx.collections.FXCollections;
  8. import javafx.collections.ObservableList;
  9. import javafx.event.ActionEvent;
  10. import javafx.event.EventHandler;
  11. import javafx.geometry.Insets;
  12. import javafx.scene.Group;
  13. import javafx.scene.Scene;
  14. import javafx.scene.control.Button;
  15. import javafx.scene.control.Label;
  16. import javafx.scene.control.TableColumn;
  17. import javafx.scene.control.TableRow;
  18. import javafx.scene.control.TableColumn.CellEditEvent;
  19. import javafx.scene.control.TableView;
  20. import javafx.scene.control.TextField;
  21. import javafx.scene.control.cell.PropertyValueFactory;
  22. import javafx.scene.control.cell.TextFieldTableCell;
  23. import javafx.scene.layout.HBox;
  24. import javafx.scene.layout.VBox;
  25. import javafx.scene.text.Font;
  26. import javafx.stage.Stage;
  27. import javafx.util.Callback;
  28.  
  29. public class test extends Application {
  30.  
  31.    
  32.      
  33.         private TableView<Person> table = new TableView<Person>();
  34.         private final ObservableList<Person> data =
  35.                 FXCollections.observableArrayList(
  36.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  37.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  38.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  39.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  40.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  41.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  42.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  43.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  44.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  45.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  46.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  47.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  48.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  49.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  50.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  51.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  52.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  53.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  54.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  55.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  56.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  57.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  58.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  59.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  60.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  61.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  62.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  63.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  64.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  65.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  66.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  67.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  68.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  69.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  70.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  71.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  72.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  73.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  74.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  75.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  76.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  77.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  78.                 new Person("Jacob", "Smith", "jacob.smith@example.com"),
  79.                 new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
  80.                 new Person("Ethan", "Williams", "ethan.williams@example.com"),
  81.                 new Person("Emma", "Jones", "emma.jones@example.com"),
  82.                 new Person("Michael", "Brown", "michael.brown@example.com"));
  83.         final HBox hb = new HBox();
  84.      
  85.         public static void main(String[] args) {
  86.             launch(args);
  87.         }
  88.      
  89.         @Override
  90.         public void start(Stage stage) {
  91.             Scene scene = new Scene(new Group());
  92.             stage.setTitle("Table View Sample");
  93.             stage.setWidth(450);
  94.             stage.setHeight(550);
  95.      
  96.             final Label label = new Label("Address Book");
  97.             label.setFont(new Font("Arial", 20));
  98.      
  99.             table.setEditable(true);
  100.      
  101.             TableColumn firstNameCol = new TableColumn("First Name");
  102.             firstNameCol.setMinWidth(100);
  103.             firstNameCol.setCellValueFactory(
  104.                 new PropertyValueFactory<Person, String>("firstName"));
  105.             firstNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
  106.             firstNameCol.setOnEditCommit(
  107.                 new EventHandler<CellEditEvent<Person, String>>() {
  108.                     @Override
  109.                     public void handle(CellEditEvent<Person, String> t) {
  110.                         ((Person) t.getTableView().getItems().get(
  111.                                 t.getTablePosition().getRow())
  112.                                 ).setFirstName(t.getNewValue());
  113.                     }
  114.                 }
  115.             );
  116.      
  117.      
  118.             TableColumn lastNameCol = new TableColumn("Last Name");
  119.             lastNameCol.setMinWidth(100);
  120.             lastNameCol.setCellValueFactory(
  121.                 new PropertyValueFactory<Person, String>("lastName"));
  122.             lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
  123.             lastNameCol.setOnEditCommit(
  124.                 new EventHandler<CellEditEvent<Person, String>>() {
  125.                     @Override
  126.                     public void handle(CellEditEvent<Person, String> t) {
  127.                         ((Person) t.getTableView().getItems().get(
  128.                             t.getTablePosition().getRow())
  129.                             ).setLastName(t.getNewValue());
  130.                     }
  131.                 }
  132.             );
  133.      
  134.             TableColumn emailCol = new TableColumn("Email");
  135.             emailCol.setMinWidth(200);
  136.             emailCol.setCellValueFactory(
  137.                 new PropertyValueFactory<Person, String>("email"));
  138.             emailCol.setCellFactory(TextFieldTableCell.forTableColumn());
  139.             emailCol.setOnEditCommit(
  140.                 new EventHandler<CellEditEvent<Person, String>>() {
  141.                     @Override
  142.                     public void handle(CellEditEvent<Person, String> t) {
  143.                         ((Person) t.getTableView().getItems().get(
  144.                             t.getTablePosition().getRow())
  145.                             ).setEmail(t.getNewValue());
  146.                     }
  147.                 }
  148.             );
  149.      
  150.             table.setRowFactory(new Callback<TableView<Person>, TableRow<Person>>() {
  151.                 @Override public TableRow<Person> call(TableView<Person> p) {
  152.                     return new TableRow<Person>() {
  153.                         @Override protected double computePrefHeight(double width) { return getIndex()%3 == 1?50:24; }
  154.                     };
  155.                 }
  156.             });
  157.            
  158.             table.setItems(data);
  159.             table.getColumns().addAll(firstNameCol, lastNameCol, emailCol);
  160.      
  161.             final TextField addFirstName = new TextField();
  162.             addFirstName.setPromptText("First Name");
  163.             addFirstName.setMaxWidth(firstNameCol.getPrefWidth());
  164.             final TextField addLastName = new TextField();
  165.             addLastName.setMaxWidth(lastNameCol.getPrefWidth());
  166.             addLastName.setPromptText("Last Name");
  167.             final TextField addEmail = new TextField();
  168.             addEmail.setMaxWidth(emailCol.getPrefWidth());
  169.             addEmail.setPromptText("Email");
  170.      
  171.             final Button addButton = new Button("Add");
  172.             addButton.setOnAction(new EventHandler<ActionEvent>() {
  173.                 @Override
  174.                 public void handle(ActionEvent e) {
  175.                     data.add(new Person(
  176.                             addFirstName.getText(),
  177.                             addLastName.getText(),
  178.                             addEmail.getText()));
  179.                     addFirstName.clear();
  180.                     addLastName.clear();
  181.                     addEmail.clear();
  182.                 }
  183.             });
  184.      
  185.             hb.getChildren().addAll(addFirstName, addLastName, addEmail, addButton);
  186.             hb.setSpacing(3);
  187.      
  188.             final VBox vbox = new VBox();
  189.             vbox.setSpacing(5);
  190.             vbox.setPadding(new Insets(10, 0, 0, 10));
  191.             vbox.getChildren().addAll(label, table, hb);
  192.      
  193.             ((Group) scene.getRoot()).getChildren().addAll(vbox);
  194.      
  195.             stage.setScene(scene);
  196.             stage.show();
  197.         }
  198.      
  199.         public static class Person {
  200.      
  201.             private final SimpleStringProperty firstName;
  202.             private final SimpleStringProperty lastName;
  203.             private final SimpleStringProperty email;
  204.      
  205.             private Person(String fName, String lName, String email) {
  206.                 this.firstName = new SimpleStringProperty(fName);
  207.                 this.lastName = new SimpleStringProperty(lName);
  208.                 this.email = new SimpleStringProperty(email);
  209.             }
  210.      
  211.             public String getFirstName() {
  212.                 return firstName.get();
  213.             }
  214.      
  215.             public void setFirstName(String fName) {
  216.                 firstName.set(fName);
  217.             }
  218.      
  219.             public String getLastName() {
  220.                 return lastName.get();
  221.             }
  222.      
  223.             public void setLastName(String fName) {
  224.                 lastName.set(fName);
  225.             }
  226.      
  227.             public String getEmail() {
  228.                 return email.get();
  229.             }
  230.      
  231.             public void setEmail(String fName) {
  232.                 email.set(fName);
  233.             }
  234.         }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement