Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javafx.application.Application;
- import javafx.beans.property.SimpleStringProperty;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.EventHandler;
- import javafx.scene.Group;
- import javafx.scene.Scene;
- import javafx.scene.control.TableColumn;
- import javafx.scene.control.TableColumn.CellEditEvent;
- import javafx.scene.control.TableView;
- import javafx.scene.control.cell.PropertyValueFactory;
- import javafx.scene.control.cell.TextFieldTableCell;
- import javafx.scene.layout.HBox;
- import javafx.stage.Stage;
- public class test extends Application {
- private TableView<Person> table = new TableView<Person>();
- private final ObservableList<Person> data = FXCollections
- .observableArrayList(new Person("Jacob", "Smith",
- new Person("Isabella", "Johnson",
- new Person("Isabella", "Johnson",
- new Person("Isabella", "Johnson",
- new Person("Isabella", "Johnson",
- new Person("Isabella", "Johnson",
- new Person("Isabella", "Johnson",
- new Person("Isabella", "Johnson",
- new Person("Isabella", "Johnson",
- final HBox hb = new HBox();
- 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(550);
- table.setEditable(true);
- table.prefHeightProperty().bind(stage.heightProperty());
- TableColumn firstNameCol = new TableColumn("First Name");
- firstNameCol.setMinWidth(100);
- firstNameCol
- .setCellValueFactory(new PropertyValueFactory<Person, String>(
- "firstName"));
- firstNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
- firstNameCol
- .setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {
- @Override
- public void handle(CellEditEvent<Person, String> t) {
- ((Person) t.getTableView().getItems()
- .get(t.getTablePosition().getRow()))
- .setFirstName(t.getNewValue());
- }
- });
- TableColumn lastNameCol = new TableColumn("Last Name");
- lastNameCol.setMinWidth(100);
- lastNameCol
- .setCellValueFactory(new PropertyValueFactory<Person, String>(
- "lastName"));
- lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());
- lastNameCol
- .setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {
- @Override
- public void handle(CellEditEvent<Person, String> t) {
- ((Person) t.getTableView().getItems()
- .get(t.getTablePosition().getRow()))
- .setLastName(t.getNewValue());
- }
- });
- TableColumn emailCol = new TableColumn("Email");
- emailCol.setMinWidth(200);
- emailCol.setCellValueFactory(new PropertyValueFactory<Person, String>(
- "email"));
- emailCol.setCellFactory(TextFieldTableCell.forTableColumn());
- emailCol.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {
- @Override
- public void handle(CellEditEvent<Person, String> t) {
- ((Person) t.getTableView().getItems()
- .get(t.getTablePosition().getRow())).setEmail(t
- .getNewValue());
- }
- });
- table.setItems(data);
- table.getColumns().addAll(firstNameCol, lastNameCol, emailCol);
- ((Group) scene.getRoot()).getChildren().addAll(table);
- 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);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement