Guest User

JavaFX-Lab4

a guest
Nov 5th, 2024
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.43 KB | Source Code | 0 0
  1. import javafx.application.Application;
  2. import javafx.collections.FXCollections;
  3. import javafx.collections.ObservableList;
  4. import javafx.fxml.FXMLLoader;
  5. import javafx.geometry.Pos;
  6. import javafx.scene.Parent;
  7. import javafx.scene.Scene;
  8. import javafx.scene.control.*;
  9. import javafx.scene.layout.*;
  10. import javafx.stage.Stage;
  11.  
  12. import java.io.IOException;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15.  
  16. public class FormApplication extends Application {
  17.     @Override
  18.     public void start(Stage stage) throws IOException {
  19.         Parent root = FXMLLoader.load(getClass().getResource("form-view.fxml"));
  20.  
  21.         // Labels and TextField
  22.         Label nameLabel = new Label("Name:");
  23.         TextField nameTextField = new TextField();
  24.         Label addressLabel = new Label("Address:");
  25.         TextField addressTextField = new TextField();
  26.         Label provinceLabel = new Label("Province:");
  27.         TextField provinceTextField = new TextField();
  28.         Label cityLabel = new Label("City:");
  29.         TextField cityTextField = new TextField();
  30.         Label postalCodeLabel = new Label("Postal Code:");
  31.         TextField postalCodeTextField = new TextField();
  32.         Label phoneNumberLabel = new Label("Phone Number:");
  33.         TextField phoneNumberTextField = new TextField();
  34.         Label emailLabel = new Label("Email:");
  35.         TextField emailTextField = new TextField();
  36.  
  37.         // Checkboxes
  38.         CheckBox studentCouncilCheckBox = new CheckBox("Student Council");
  39.         CheckBox volunteerWorkCheckbox = new CheckBox("Volunteer Work");
  40.  
  41.         // Radio Buttons
  42.         RadioButton computerScienceRadioButton = new RadioButton("Computer Science");
  43.         RadioButton businessRadioButton = new RadioButton("Business");
  44.         ToggleGroup courseToggleGroup = new ToggleGroup();
  45.         computerScienceRadioButton.setToggleGroup(courseToggleGroup);
  46.         businessRadioButton.setToggleGroup(courseToggleGroup);
  47.         computerScienceRadioButton.setSelected(true); // default radio button
  48.  
  49.         // skillsComboBox
  50.         ComboBox<String> skillsComboBox = new ComboBox<>();
  51.         skillsComboBox.getItems().addAll(
  52.                 "Java",
  53.                 "Python",
  54.                 "C#"
  55.         );
  56.         skillsComboBox.setPrefWidth(150);
  57.  
  58.         // skillsListView
  59.         ListView<String> skillsListView = new ListView<>();
  60.         skillsListView.setPrefWidth(60);
  61.         skillsListView.setPrefHeight(170);
  62.         ObservableList<String> observableSkillsListView = FXCollections.observableArrayList();
  63.         skillsListView.setItems(observableSkillsListView);
  64.  
  65.         // leftGridPane
  66.         GridPane leftGridPane = new GridPane(10, 10);
  67.         leftGridPane.setPadding(new javafx.geometry.Insets(10));
  68.  
  69.         // displayButton
  70.         Button displayButton = new Button("Display");
  71.  
  72.         // displayListView
  73.         ListView<String> displayListView = new ListView<>();
  74.         ObservableList<String> observableDisplayListView = FXCollections.observableArrayList();
  75.         displayListView.setItems(observableDisplayListView);
  76.         ScrollPane displayListViewScrollPane = new ScrollPane();
  77.         displayListViewScrollPane.setContent(displayListView);
  78.  
  79.         // leftGridPane Positioning
  80.         leftGridPane.add(nameLabel, 0, 0);
  81.         leftGridPane.add(nameTextField, 1, 0);
  82.         leftGridPane.add(addressLabel, 0, 1);
  83.         leftGridPane.add(addressTextField, 1, 1);
  84.         leftGridPane.add(studentCouncilCheckBox, 2, 1);
  85.         leftGridPane.add(provinceLabel, 0, 2);
  86.         leftGridPane.add(provinceTextField, 1, 2);
  87.         leftGridPane.add(cityLabel, 0, 3);
  88.         leftGridPane.add(cityTextField, 1, 3);
  89.         leftGridPane.add(postalCodeLabel, 0, 4);
  90.         leftGridPane.add(postalCodeTextField, 1, 4);
  91.         leftGridPane.add(phoneNumberLabel, 0, 5);
  92.         leftGridPane.add(phoneNumberTextField, 1, 5);
  93.         leftGridPane.add(volunteerWorkCheckbox, 2, 5);
  94.         leftGridPane.add(emailLabel, 0, 6);
  95.         leftGridPane.add(emailTextField, 1, 6);
  96.  
  97.         // rightGridPane
  98.         GridPane rightGridPane = new GridPane(10, 10);
  99.         rightGridPane.setPadding(new javafx.geometry.Insets(10));
  100.  
  101.         // rightGridPane Positioning
  102.         rightGridPane.add(computerScienceRadioButton, 0, 0);
  103.         rightGridPane.add(businessRadioButton, 1, 0);
  104.         rightGridPane.add(skillsComboBox, 0, 1);
  105.         rightGridPane.add(skillsListView, 0, 2);
  106.  
  107.         // flowPane
  108.         FlowPane flowPane = new FlowPane();
  109.         flowPane.getChildren().add(leftGridPane);
  110.         flowPane.getChildren().add(rightGridPane);
  111.  
  112.         // vBox
  113.         VBox vbox = new VBox(10);
  114.  
  115.         // vBox Positioning
  116.         vbox.getChildren().add(displayButton);
  117.         vbox.getChildren().add(displayListViewScrollPane);
  118.         vbox.setAlignment(Pos.CENTER);
  119.  
  120.         // borderPane
  121.         BorderPane borderPane = new BorderPane();
  122.  
  123.         // borderPane Positioning
  124.         borderPane.setTop(flowPane);
  125.         borderPane.setBottom(vbox);
  126.         borderPane.setAlignment(vbox, Pos.CENTER);
  127.  
  128.         // ActionEvents
  129.         skillsComboBox.setOnAction(e -> {
  130.             String selectedItem = skillsComboBox.getSelectionModel().getSelectedItem();
  131.             if (!observableSkillsListView.contains(selectedItem)) {
  132.                 observableSkillsListView.add(selectedItem);
  133.             }
  134.         });
  135.  
  136.         displayButton.setOnAction(e -> {
  137.             // Get Values from TextFields
  138.             String name = nameTextField.getText();
  139.             String address = addressTextField.getText();
  140.             String province = provinceTextField.getText();
  141.             String city = cityTextField.getText();
  142.             String postalCode = postalCodeTextField.getText();
  143.             String phoneNumber = phoneNumberTextField.getText();
  144.             String email = emailTextField.getText();
  145.  
  146.             // Get Values from Radio Buttons
  147.             String courseSelected = ((RadioButton) courseToggleGroup.getSelectedToggle()).getText();
  148.  
  149.             // Get Values from CheckBoxes
  150.             boolean isStudentCouncil = studentCouncilCheckBox.isSelected();
  151.             boolean isVolunteerWork = volunteerWorkCheckbox.isSelected();
  152.  
  153.             // Get Values from ListView
  154.             List<String> skillList = new ArrayList<>(skillsListView.getItems());
  155.  
  156.             // Build Profile
  157.             String profile = name + ", " +
  158.                     address + ", " +
  159.                     city + ", " +
  160.                     province + ", " +
  161.                     city + ", " +
  162.                     postalCode + ", " +
  163.                     phoneNumber + ", " +
  164.                     email;
  165.  
  166.             // Clear ComboBox
  167.             skillsComboBox.getSelectionModel().clearSelection();
  168.  
  169.             // Clear All ListViews
  170.             observableSkillsListView.clear();
  171.             observableDisplayListView.clear();
  172.  
  173.             // Final Display
  174.             if (!name.equals("") || !address.equals("") || !city.equals("") || !province.equals("") || !city.equals("") || !postalCode.equals("") || !phoneNumber.equals("") || !email.equals("")) {
  175.                 observableDisplayListView.add(profile);
  176.                 observableDisplayListView.add("Courses:");
  177.                 observableDisplayListView.addAll(skillList);
  178.                 observableDisplayListView.add("Student Council: " + (isStudentCouncil ? "Yes" : "No"));
  179.                 observableDisplayListView.add("Volunteer Work: " + (isVolunteerWork ? "Yes" : "No"));
  180.                 observableDisplayListView.add("Degree in " + ((RadioButton) courseToggleGroup.getSelectedToggle()).getText());
  181.  
  182.                 // Clear All TextFields
  183.                 nameTextField.clear();
  184.                 addressTextField.clear();
  185.                 provinceTextField.clear();
  186.                 cityTextField.clear();
  187.                 postalCodeTextField.clear();
  188.                 phoneNumberTextField.clear();
  189.                 emailTextField.clear();
  190.  
  191.                 // Default Radio Button
  192.                 computerScienceRadioButton.setSelected(true);
  193.  
  194.                 // Clear All Checkboxes
  195.                 studentCouncilCheckBox.setSelected(false);
  196.                 volunteerWorkCheckbox.setSelected(false);
  197.             }
  198.         });
  199.  
  200.         // Scene
  201.         Scene scene = new Scene(borderPane, 800, 600);
  202.         stage.setScene(scene);
  203.         stage.setTitle("Course Form");
  204.         stage.show();
  205.     }
  206.  
  207.     public static void main(String[] args) {
  208.         launch();
  209.     }
  210. }
Tags: lab
Add Comment
Please, Sign In to add comment