sergAccount

Untitled

Feb 22nd, 2021
531
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×