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

惠州JavaFX表视图如何添加新行?_北大青鸟IT学校

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


导读:JavaFX表视图如何添加新行?这是每个学习Java的同学都会遇到的问题,下面我们一起来看看惠州北大青鸟老师是怎么回答的。

JavaFX表视图如何添加新行?这是每个学习Java的同学都会遇到的问题,下面我们一起来看看惠州北大青鸟老师是怎么回答的。

以下代码显示如何向表视图中添加数据。 创建 JavaFX JavaBean 以保存单个行的值。 表中的每一行代表一个名字为姓氏的人。 JavaFX JavaBean 称为 Person,它有两个字段,名字和姓氏。 Person为这两个值提供了可绑定的属性。

在 UI 逻辑中,它使用 ObservableList 来保存表视图的值。 ObservableList 中的每个元素都是一个Person对象。

在按钮事件处理程序中,它创建一个新的具有硬编码的名字和姓氏的人,然后添加到 ObservableList。

import javafx.application.Application; 

import javafx.beans.property.SimpleStringProperty; 

import javafx.collections.FXCollections; 

import javafx.collections.ObservableList; 

import javafx.event.ActionEvent; import javafx.geometry.Insets; 

import javafx.scene.Group; import javafx.scene.Scene; 

import javafx.scene.control.Button; import javafx.scene.control.TableColumn; 

import javafx.scene.control.TableView; 

import javafx.scene.control.cell.PropertyValueFactory; 

import javafx.scene.layout.HBox; 

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

     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.setWidth(450);

         stage.setHeight(550);


             TableColumn firstNameCol = new TableColumn("First Name");

         firstNameCol.setMinWidth(100);

         firstNameCol.setCellValueFactory(

                 new PropertyValueFactory<>("firstName"));


           TableColumn lastNameCol = new TableColumn("Last Name");

         lastNameCol.setMinWidth(100);

         lastNameCol.setCellValueFactory(

                 new PropertyValueFactory<>("lastName"));


           table.setItems(data);

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


           final Button addButton = new Button("Add");

         addButton.setOnAction((ActionEvent e) -> {

             data.add(new Person("Z","X"));

          });


           hb.getChildren().addAll(addButton);

         hb.setSpacing(3);


           final VBox vbox = new VBox();

         vbox.setSpacing(5);

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

         vbox.getChildren().addAll(table, hb);


           ((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表视图3.png

想了解更多关于Java的资讯,可以来惠州北大青鸟新方舟校区了解一下。

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


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