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

惠州JavaFX双列表视图是什么?_北大青鸟IT学校

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


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

JavaFX双列表视图是什么?相信这是每个学习Java的同学都会遇到的问题,下面我们一起来看看惠州北大青鸟老师是怎么回答的。

ObservableList是一个集合,能够在添加,更新和删除对象时通知UI控件。JavaFX ObservableLists通常用于列表UI控件,如ListView和TableView。

下面的代码显示了如何使用ObservableList来处理ListView。它有两个ListView控件和两个按钮。 我们可以使用两个按钮将项目从一个列表视图移动到另一个列表视图。

import javafx.application.Application;import javafx.collections.FXCollections;import javafx.collections.ObservableList;import javafx.event.ActionEvent;import javafx.geometry.HPos;import javafx.geometry.Insets;import javafx.scene.Scene;import javafx.scene.control.Button;import javafx.scene.control.Label;import javafx.scene.control.ListView;import javafx.scene.layout.BorderPane;import javafx.scene.layout.ColumnConstraints;import javafx.scene.layout.GridPane;import javafx.scene.layout.Priority;import javafx.scene.layout.VBox;import javafx.scene.paint.Color;import javafx.stage.Stage;public class Main extends Application {

 @Override  public void start(Stage primaryStage) {
   BorderPane root = new BorderPane();
   Scene scene = new Scene(root, 400, 250, Color.WHITE);

   GridPane gridpane = new GridPane();
   gridpane.setPadding(new Insets(5));
   gridpane.setHgap(10);
   gridpane.setVgap(10);
   ColumnConstraints column1 = new ColumnConstraints(150, 150,
       Double.MAX_VALUE);
   ColumnConstraints column2 = new ColumnConstraints(50);
   ColumnConstraints column3 = new ColumnConstraints(150, 150,
       Double.MAX_VALUE);
   column1.setHgrow(Priority.ALWAYS);
   column3.setHgrow(Priority.ALWAYS);
   gridpane.getColumnConstraints().addAll(column1, column2, column3);

   Label candidatesLbl = new Label("Candidates");
   GridPane.setHalignment(candidatesLbl, HPos.CENTER);
   gridpane.add(candidatesLbl, 0, 0);

   Label selectedLbl = new Label("selected");
   gridpane.add(selectedLbl, 2, 0);
   GridPane.setHalignment(selectedLbl, HPos.CENTER);    // Candidates    final ObservableList<String> candidates = FXCollections
       .observableArrayList("Z", "A", "B", "C", "D");    final ListView<String> candidatesListView = new ListView<>(candidates);
   gridpane.add(candidatesListView, 0, 1);    final ObservableList<String> selected = FXCollections.observableArrayList();    final ListView<String> heroListView = new ListView<>(selected);
   gridpane.add(heroListView, 2, 1);

   Button sendRightButton = new Button(" > ");
   sendRightButton.setOnAction((ActionEvent event) -> {
     String potential = candidatesListView.getSelectionModel()
         .getSelectedItem();      if (potential != null) {
       candidatesListView.getSelectionModel().clearSelection();
       candidates.remove(potential);
       selected.add(potential);
     }
   });

   Button sendLeftButton = new Button(" < ");
   sendLeftButton.setOnAction((ActionEvent event) -> {
     String s = heroListView.getSelectionModel().getSelectedItem();      if (s != null) {
       heroListView.getSelectionModel().clearSelection();
       selected.remove(s);
       candidates.add(s);
     }
   });
   VBox vbox = new VBox(5);
   vbox.getChildren().addAll(sendRightButton, sendLeftButton);

   gridpane.add(vbox, 1, 1);
   root.setCenter(gridpane);

   GridPane.setVgrow(root, Priority.ALWAYS);
   primaryStage.setScene(scene);
   primaryStage.show();
 }  public static void main(String[] args) {
   launch(args);
 }
}

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

JavaFX列表视图4.png

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

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


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