广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州如何编辑JavaFX表中的数据?_北大青鸟IT学校

作者:邓华发布时间:2021-05-20分类:Java技术浏览:764


导读:如何编辑JavaFX表中的数据?最近惠州北大青鸟很多学员都在问这个问题,那么下面惠州北大青鸟学术部老师给大家解答一下这个问题。

如何编辑JavaFX表中的数据?最近惠州北大青鸟很多学员都在问这个问题,那么下面惠州北大青鸟学术部老师给大家解答一下这个问题。

我们可以在表视图中编辑数据。通过调用 setEditable 方法,我们可以启用表内容的编辑。

setCellFactory 方法安装在 TextFieldTableCell 类中定义的文本字段为每个表单元格。

setOnEditCommit 方法更新表单元格,并且数据绑定需要考虑设置数据回到 JavaFX JavaBean,它用作表视图的下划线数据模型。

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.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.VBox; 

import javafx.stage.Stage; 


public class Main extends Application {


       private final TableView<Person> table = new TableView<>();

     private final ObservableList<Person> data =

             FXCollections.observableArrayList(

             new Person("A", "B"),

             new Person("C", "D"));

     public static void main(String[] args) {

         launch(args);

     }


       @Override

     public void start(Stage stage) {

         Scene scene = new Scene(new Group());

         stage.setWidth(450);

         stage.setHeight(550);


           table.setEditable(true);


           TableColumn<Person, String> firstNameCol =

              new TableColumn<>("First Name");

         firstNameCol.setMinWidth(100);

         firstNameCol.setCellValueFactory(

             new PropertyValueFactory<>("firstName"));


                  firstNameCol.setCellFactory(TextFieldTableCell.<Person>forTableColumn());

         firstNameCol.setOnEditCommit(

             (CellEditEvent<Person, String> t) -> {

                 ((Person) t.getTableView().getItems().get(

                         t.getTablePosition().getRow())

                         ).setFirstName(t.getNewValue());

         });


             TableColumn<Person, String> lastNameCol =

              new TableColumn<>("Last Name");

         lastNameCol.setMinWidth(100);

         lastNameCol.setCellValueFactory(

             new PropertyValueFactory<>("lastName"));

        lastNameCol.setCellFactory(TextFieldTableCell.<Person>forTableColumn());

        lastNameCol.setOnEditCommit(

             (CellEditEvent<Person, String> t) -> {

                 ((Person) t.getTableView().getItems().get(

                         t.getTablePosition().getRow())

                         ).setLastName(t.getNewValue());

         });

         table.setItems(data);

         table.getColumns().addAll(firstNameCol, lastNameCol);


           final VBox vbox = new VBox();

         vbox.setSpacing(5);

         vbox.setPadding(new Insets(10, 0, 0, 10));

         vbox.getChildren().addAll( 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 Person(String fName, String lName) {

             this.firstName = new SimpleStringProperty(fName);

             this.lastName = new SimpleStringProperty(lName);

         }


           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);

         }

     }

 } 

上面的代码生成以下结果。

JavaFX表视图5.png

想学Java,可以来惠州北大青鸟新方舟校区详细了解。

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表