Advertisement
sergAccount

Untitled

Feb 22nd, 2021
704
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.41 KB | None | 0 0
  1. package com.spec.appfx2;
  2.  
  3. import javafx.application.Application;
  4. import javafx.collections.FXCollections;
  5. import javafx.collections.ObservableList;
  6. import javafx.event.ActionEvent;
  7. import javafx.geometry.Insets;
  8. import javafx.scene.Scene;
  9. import javafx.scene.control.Button;
  10. import javafx.scene.control.TableColumn;
  11. import javafx.scene.control.TableView;
  12. import javafx.scene.control.cell.PropertyValueFactory;
  13. import javafx.scene.layout.FlowPane;
  14. import javafx.scene.layout.Pane;
  15. import javafx.scene.layout.VBox;
  16. import javafx.stage.Stage;
  17.  
  18. public class App extends Application {
  19.     // компонент - таблица
  20.     private TableView tableView;
  21.     // данные для таблицы tableView
  22.     private ObservableList<Person> data = FXCollections.observableArrayList();
  23.  
  24.     @Override
  25.     public void start(Stage stage) {
  26.         // сцена
  27.         var scene = new Scene(createPane(), 1024, 800);
  28.         // установка сцены
  29.         stage.setScene(scene);
  30.         // показываем окно на экране
  31.         stage.show();
  32.     }    
  33.     // создаем панель и наполняем элементами управления (компонентами UI)
  34.     private Pane createPane() {
  35.         //                
  36.         final VBox pane = new VBox();
  37.         pane.setSpacing(10);
  38.         pane.setPadding(new Insets(10, 10, 10, 10));
  39.         // панель - потоковое расположение, вертик и горизонтальные отступы!!!
  40.         final FlowPane buttonsPane = new FlowPane();
  41.         buttonsPane.setVgap(0);
  42.         buttonsPane.setHgap(10);
  43.         Button btn1 = new Button("Обновить");
  44.         //buttonsPane.getChildren().addAll(btn1);
  45.         //
  46.         Button btn2 = new Button("Очистить");
  47.         btn2.setOnAction(this::onClearData);
  48.         buttonsPane.getChildren().addAll(btn1, btn2);
  49.         // создаем данные и инициализируем св-во data
  50.         data = createData();
  51.         tableView = createTableView(data);        
  52.         pane.getChildren().addAll(buttonsPane, tableView);
  53.         return pane;
  54.     }
  55.     // создаем таблицу - объект типа TableView
  56.     private static TableView createTableView(ObservableList<Person> data){
  57.         TableView tv = new TableView();
  58.         // создаем колонки
  59.         TableColumn<Person, String> column1 = new TableColumn<>("Имя");
  60.         column1.setCellValueFactory(new PropertyValueFactory<>("firstName"));
  61.         TableColumn<Person, String> column2 = new TableColumn<>("Фамилия");
  62.         column2.setCellValueFactory(new PropertyValueFactory<>("lastName"));
  63.         //
  64.         tv.getColumns().add(column1);
  65.         tv.getColumns().add(column2);
  66.         tv.setItems(data);        
  67.         return tv;
  68.     }
  69.     private void onClearData(ActionEvent t) {
  70.         System.out.println("onClearData!!!");
  71.         data.clear();
  72.     }
  73.     //
  74.     private static ObservableList<Person> createData() {
  75.         //
  76.         final ObservableList<Person> data = FXCollections.observableArrayList();
  77.         data.add(new Person("fName1", "lastName1"));
  78.         data.add(new Person("fName2", "lastName2"));
  79.         data.add(new Person("fName3", "lastName3"));
  80.         return data;
  81.     }
  82.     //
  83.     public static void main(String[] args) {
  84.         launch();
  85.     }
  86.  
  87.    
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement