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

惠州TableView列排序是什么?_北大青鸟IT学校

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


导读:前面惠州北大青鸟老师给大家分享了JavaFX表视图相关的知识,那么大家知道TableView列排序是什么吗?下面跟着老师一起来学习一下。

前面惠州北大青鸟老师给大家分享了JavaFX表视图相关的知识,那么大家知道TableView列排序是什么吗?下面跟着老师一起来学习一下。

TableView 类具有列的内置排序功能。

我们可以通过点击列标题对数据进行排序。第一次单击启用升序排序,第二次点击使得排序顺序降序,第三个点击禁用排序。

默认情况下,不应用排序。

我们可以排序多个列,并在排序操作中指定每个列的优先级。

要对多个列进行排序,请在按住Shift键的同时单击列标题。

我们可以使用 setSortType 方法设置排序首选项我们可以指定升序或降序类型。

以下代码设置排序的降序类型

aColumn.setSortType(TableColumn.SortType.DESCENDING);

我们可以通过从 TableView.sortOrder observable 列表中添加和删除 TableColumn 实例来指定要排序的列。

TableView.sortOrder observable 列中的列的顺序表示排序优先级。 列表中零索引的项目的优先级高于列表中的第一个项目。

要禁止对列进行排序,请调用该列上的 setSortable(false) 方法。

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

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


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


        firstNameCol.setSortType(TableColumn.SortType.DESCENDING);

         lastNameCol.setSortable(false);


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

想了解更多关于Java的知识,联系在线客服,或者来惠州北大青鸟新方舟校区了解一下。

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


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