Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

How do I make my code so it will work in a JavaFX file? Here\'s my code so far:

ID: 3719121 • Letter: H

Question

How do I make my code so it will work in a JavaFX file?

Here's my code so far:

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.PrintStream;

import java.util.Scanner;

import java.util.HashSet;

class Entry {

  String fname, lname, number, note;

  public Entry() {

      fname = "";

      lname = "";

      number = "";

      note = "";

  }

}

class PBN {

  public static Entry[] contactList;

  public static HashSet<String> h = new HashSet();

  public static int num_entries;

  public static Scanner stdin = new Scanner(System.in);

  public static void main(String args[]) throws Exception {

      char C;

      String code, Command;

      contactList = new Entry[999];

      num_entries = 0;

      try {

          readPhoneBook("Phonebook.txt");

      } catch (FileNotFoundException e) {

      }

      System.out.println("Codes are entered as 1 to 8 characters. " +

              "Use Commands: " +

              " "e" for enter a new contact, " +

              " "f" for find contact by fist name, " +

              " "r" for find contact by last name, " +

              " "y" for find contact by phone number, " +

              " "l" for listing all the existing contacts, " +

              //" "m" for removing the entries by name, " +

              " "d" for removing contacts by phone number, " +

              " "a" for sort alphabetically by first name, " +

              " "n" for sort alphabetically by last name, " +

              " "p" for sort by number, " +

              " "q" to quit.");

      while (true) { // loop infinitely

          System.out.print("Command: ");

          Command = stdin.nextLine();

          C = Command.charAt(0);

          switch (C) {

              case 'e':

                  addContact();

                  break;

              case 'f':

                  System.out.print("Search for contact by first name: ");

                  code = stdin.next();

                  stdin.nextLine();

                  index(code);

                  break;

              case 'r':

                  System.out.print("Search for contact by last name: ");

                  code = stdin.next();

                  stdin.nextLine();

                  index1(code);

                  break;

              case 'y':

                  System.out.print("Search for contact by phone number: ");

                  code = stdin.next();

                  stdin.nextLine();

                  index2(code);

                  break;

              case 'l':

                  listAllContacts();

                  break;

              case 'q': // when user wants to quit

                  CopyPhoneBookToFile("Phonebook.txt");

                  System.out.println("Quitting the application. All the entries are "

                          + "stored in the file Phonebook.txt");

                  System.exit(0); // simply terminate the execution

              case 'a':

                  sortList1();

                  break;

              case 'n':

                  sortList2();

                  break;

              case 'm’:

                  mergeContacts();

                  break;

              case 'p':

                              sortListByPhoneNumber();

                  break;

              /*

              case 'm': // m for deleting a contact; delete by first name

                  System.out.print("Enter the first name of a contact you wish to remove : ");

                  String fname = stdin.nextLine(); // read the contact number

                  removeEntry(fname); // remove the number from the entries

                  break;

              case 'o': // m for deleting a contact; delete by last name

                  System.out.print("Enter the last name of a contact you wish to remove : ");

                  String lname = stdin.nextLine(); // read the contact number

                  removeEntry2(lname); // remove the number from the entries

                  break;

              */

              case 'd': // m for deleting a contact; delete by phone number

                  System.out.print("Enter the phone number of a contact you wish to delete : ");

                  String number = stdin.nextLine();// read the contact number

                 /*

                  System.out.println("You want to delete this contact?");

                  index2(number);

                  System.out.println("Yes or no");

                  stdin.nextLine();

                  if (stdin.equals("Yes")){

                  }else if (stdin.equals("No")){

                      return;

                  }else{

                      return;

                  }

                  */

                  removeEntry1(number); // remove the number from the entries

                  break;

              default:

                  System.out.println("Invalid command Please enter the command again!!!");

          }

      }

  }

  public static void readPhoneBook(String FileName) throws Exception {

      File F;

      F = new File(FileName);

      Scanner S = new Scanner(F);

      while (S.hasNextLine()) {

          contactList[num_entries] = new Entry();

          contactList[num_entries].fname = S.next();

          contactList[num_entries].lname = S.next();

          contactList[num_entries].number = S.next();

          contactList[num_entries].note = S.nextLine();

          num_entries++;

      }

      S.close();

  }

  public void edit(String fname, String lname, String number, String note, int selection){

      contactList[selection].fname = fname;

      contactList[selection].lname = lname;

      contactList[selection].number = number;

      contactList[selection].note = note;

  }

  public static void addContact() {

      System.out.print("Enter first name: ");

      String fname = stdin.nextLine();

Explanation / Answer

import java.util.Iterator;

import javafx.application.Application;

import javafx.beans.property.IntegerProperty;

import javafx.beans.property.SimpleIntegerProperty;

import javafx.beans.property.SimpleStringProperty;

import javafx.beans.value.ChangeListener;

import javafx.beans.value.ObservableValue;

import javafx.collections.FXCollections;

import javafx.collections.ObservableList;

import javafx.event.ActionEvent;

import javafx.event.EventHandler;

import javafx.geometry.Insets;

import javafx.scene.Group;

import javafx.scene.Scene;

import javafx.scene.control.Button;

import javafx.scene.control.ComboBox;

import javafx.scene.control.Label;

import javafx.scene.control.ListCell;

import javafx.scene.control.ListView;

import javafx.scene.control.TableColumn;

import javafx.scene.control.TableColumn.CellEditEvent;

import javafx.scene.control.TableView;

import javafx.scene.control.TextField;

import javafx.scene.control.cell.PropertyValueFactory;

import javafx.scene.control.cell.TextFieldTableCell;

import javafx.scene.layout.HBox;

import javafx.scene.layout.VBox;

import javafx.scene.paint.Color;

import javafx.scene.text.Font;

import javafx.stage.Stage;

import javafx.util.Callback;

public class MyAddressBook extends Application {

// for delete selection

private IntegerProperty index = new SimpleIntegerProperty();

private TableView<Person> table = new TableView<Person>();

// for Filter

private ObservableList<Person> filteredList = FXCollections.observableArrayList();

private final ObservableList<Person> data = FXCollections.observableArrayList

(new Person("Jacob", "Smith", "Male","12 HouseNo 35Street Newyork", " 1234341", "12-01-1867","jacob.smith@example.com"),

new Person("Isabella","Johnson", "Female", "6 HouseNo 10Street California"," 9876521", "12-01-1885", "isabella.johnson@example.com"),

new Person("Ethan", "Williams", "Male","3 Villa House 3Street LosAngels", " 1122331","01-10-1871", "ethan.williams@example.com"));

final HBox hb = new HBox();

public static void main(String[] args) {

launch(args);

}

public final double getIndex() {

return index.get();

}

public final void setIndex(Integer value) {

index.set(value);

}

public IntegerProperty indexProperty() {

return index;

}

public void filterPerson(Person filteringPerson) {

// first clear the data in the table.

filteredList.clear();

Iterator<Person> completeData = data.iterator();

while (completeData.hasNext()) {

Person person = (Person) completeData.next();

// if the first name matches searching person name, then add it to

if (person.getFirstName().contains(filteringPerson.getFirstName())) {

this.filteredList.add(person);

}

}

}

@Override

public void start(Stage stage) {

Scene scene = new Scene(new Group());

stage.setTitle("Address Book");

stage.setWidth(900);

stage.setHeight(550);

final Label label = new Label("Address Book");

label.setFont(new Font("Arial", 20));

ComboBox genderComboBox = new ComboBox();

genderComboBox.getItems().addAll("Male", "Female");

genderComboBox.setValue("Male");

genderComboBox

.setCellFactory(new Callback<ListView<String>, ListCell<String>>() {

@Override

public ListCell<String> call(ListView<String> param) {

final ListCell<String> cell = new ListCell<String>() {

{

super.setPrefWidth(100);

}

@Override

public void updateItem(String item, boolean empty) {

super.updateItem(item, empty);

if (item != null) {

setText(item);

if (item.contains("Male")) {

setTextFill(Color.RED);

} else if (item.contains("Female")) {

setTextFill(Color.GREEN);

} else {

setTextFill(Color.BLACK);

}

} else {

setText(null);

}

}

};

return cell;

}

});

table.setEditable(true);

TableColumn<Person, String> firstNameCol = new TableColumn<Person, String>(

"First Name");

firstNameCol.setMinWidth(100);

firstNameCol

.setCellValueFactory(new PropertyValueFactory<Person, String>("firstName"));

// firstNameCol.setCellFactory(TextFieldTableCell.forTableColumn());

firstNameCol

.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {

@Override

public void handle(CellEditEvent<Person, String> t) {

((Person) t.getTableView().getItems()

.get(t.getTablePosition().getRow()))

.setFirstName(t.getNewValue());

}

});

TableColumn lastNameCol = new TableColumn("Last Name");

lastNameCol.setMinWidth(100);

lastNameCol

.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName"));

lastNameCol.setCellFactory(TextFieldTableCell.forTableColumn());

lastNameCol

.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {

@Override

public void handle(CellEditEvent<Person, String> t) {

((Person) t.getTableView().getItems()

.get(t.getTablePosition().getRow()))

.setLastName(t.getNewValue());

}

});

TableColumn genderCol = new TableColumn("Gender");

genderCol.setMinWidth(10);

genderCol.setCellValueFactory(new PropertyValueFactory<Person, String>("gender"));

genderCol.setCellFactory(TextFieldTableCell.forTableColumn());

genderCol

.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {

@Override

public void handle(CellEditEvent<Person, String> t) {

((Person) t.getTableView().getItems()

.get(t.getTablePosition().getRow()))

.setGender(t.getNewValue());

}

});

TableColumn addressCol = new TableColumn("Address");

addressCol.setMinWidth(200);

addressCol

.setCellValueFactory(new PropertyValueFactory<Person, String>("address"));

addressCol.setCellFactory(TextFieldTableCell.forTableColumn());

addressCol

.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {

@Override

public void handle(CellEditEvent<Person, String> t) {

((Person) t.getTableView().getItems()

.get(t.getTablePosition().getRow()))

.setAddress(t.getNewValue());

}

});

TableColumn phoneNoCol = new TableColumn("Phone No");

phoneNoCol.setMinWidth(100);

phoneNoCol

.setCellValueFactory(new PropertyValueFactory<Person, String>("phoneNo"));

phoneNoCol.setCellFactory(TextFieldTableCell.forTableColumn());

phoneNoCol

.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {

@Override

public void handle(CellEditEvent<Person, String> t) {

((Person) t.getTableView().getItems()

.get(t.getTablePosition().getRow()))

.setPhoneNo(t.getNewValue());

}

});

TableColumn dateOfBirthCol = new TableColumn("Date Of Birth");

dateOfBirthCol.setMinWidth(100);

dateOfBirthCol

.setCellValueFactory(new PropertyValueFactory<Person, String>("dateOfBirth"));

dateOfBirthCol.setCellFactory(TextFieldTableCell.forTableColumn());

dateOfBirthCol

.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {

@Override

public void handle(CellEditEvent<Person, String> t) {

((Person) t.getTableView().getItems()

.get(t.getTablePosition().getRow()))

.setDateOfBirth(t.getNewValue());

}

});

TableColumn emailCol = new TableColumn("Email");

emailCol.setMinWidth(150);

emailCol.setCellValueFactory(new PropertyValueFactory<Person, String>("email"));

emailCol.setCellFactory(TextFieldTableCell.forTableColumn());

emailCol.setOnEditCommit(new EventHandler<CellEditEvent<Person, String>>() {

@Override

public void handle(CellEditEvent<Person, String> t) {

((Person) t.getTableView().getItems()

.get(t.getTablePosition().getRow())).setEmail(t

.getNewValue());

}

});

table.setItems(filteredList);

filteredList.addAll(data);

table.getColumns().addAll(firstNameCol, lastNameCol, genderCol,

addressCol, phoneNoCol, dateOfBirthCol, emailCol);

final TextField addFirstName = new TextField();

addFirstName.setPromptText("First Name");

addFirstName.setMaxWidth(firstNameCol.getPrefWidth());

final TextField addLastName = new TextField();

addLastName.setMaxWidth(lastNameCol.getPrefWidth());

addLastName.setPromptText("Last Name");

final TextField addGender = new TextField();

addGender.setMaxWidth(genderCol.getPrefWidth());

addGender.setPromptText("Gender");

final TextField addAddress = new TextField();

addAddress.setMaxWidth(addressCol.getPrefWidth());

addAddress.setPromptText("Address");

final TextField addPhoneNo = new TextField();

addPhoneNo.setMaxWidth(phoneNoCol.getPrefWidth());

addPhoneNo.setPromptText("PhoneNo");

final TextField addDateOfBirth = new TextField();

addDateOfBirth.setMaxWidth(dateOfBirthCol.getPrefWidth());

addDateOfBirth.setPromptText("DateOfBirth");

final TextField addEmail = new TextField();

addEmail.setMaxWidth(emailCol.getPrefWidth());

addEmail.setPromptText("Email");

final Button addButton = new Button("Add");

addButton.setOnAction(new EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent e) {

data.add(new Person(addFirstName.getText(), addLastName.getText(), addAddress.getText(), addPhoneNo.getText(),

addDateOfBirth.getText(), addEmail.getText(), addGender.getText()));

addFirstName.clear();

addLastName.clear();

addAddress.clear();

addPhoneNo.clear();

addDateOfBirth.clear();

addEmail.clear();

addGender.clear();

}

});

table.getSelectionModel().selectedItemProperty()

.addListener(new ChangeListener() {

@Override

public void changed(ObservableValue observable,

Object oldvalue, Object newValue) {

Person selectedPerson = (Person) newValue;

setIndex(data.indexOf(newValue));

System.out.println("OK");

}

});

final Button delButton = new Button("Delete");

delButton.setOnAction(new EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent e) {

data.remove(index.get());

table.getSelectionModel().clearSelection();

}

});

final Button searchButton = new Button("Search");

searchButton.setOnAction(new EventHandler<ActionEvent>() {

@Override

public void handle(ActionEvent e) {

Person person = new Person(addFirstName.getText(), addLastName.getText(), addAddress.getText(), addPhoneNo.getText(),

addDateOfBirth.getText(), addEmail.getText(), addGender.getText());

addFirstName.clear();

addLastName.clear();

addAddress.clear();

addPhoneNo.clear();

addDateOfBirth.clear();

addEmail.clear();

addGender.clear();

filterPerson(person);

}

});

hb.getChildren().addAll(addFirstName, addLastName, genderComboBox,addAddress, addPhoneNo, addDateOfBirth, addEmail, addButton,

delButton, searchButton);

hb.setSpacing(3);

final VBox vbox = new VBox();

vbox.setSpacing(5);

vbox.setPadding(new Insets(10, 0, 0, 10));

vbox.getChildren().addAll(label, table, hb);

((Group) scene.getRoot()).getChildren().addAll(vbox);

stage.setScene(scene);

stage.show();

}

public static class Person implements Comparable<Person> {

private final SimpleStringProperty firstName;

private final SimpleStringProperty lastName;

private final SimpleStringProperty gender;

private final SimpleStringProperty address;

private final SimpleStringProperty phoneNo;

private final SimpleStringProperty dateOfBirth;

private final SimpleStringProperty email;

private Person(String fName, String lName, String gen, String address, String phNo, String dob, String email) {

this.firstName = new SimpleStringProperty(fName);

this.lastName = new SimpleStringProperty(lName);

this.gender = new SimpleStringProperty(gen);

this.address = new SimpleStringProperty(address);

this.phoneNo = new SimpleStringProperty(phNo);

this.dateOfBirth = new SimpleStringProperty(dob);

this.email = new SimpleStringProperty(email);

}

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

}

public void setGender(String gen) {

gender.set(gen);

}

public String getGender() {

return gender.get();

}

public String getAddress() {

return address.get();

}

public void setAddress(String add) {

address.set(add);

}

public String getPhoneNo() {

return phoneNo.get();

}

public void setPhoneNo(String phNo) {

phoneNo.set(phNo);

}

public String getDateOfBirth() {

return dateOfBirth.get();

}

public void setDateOfBirth(String dob) {

dateOfBirth.set(dob);

}

public String getEmail() {

return email.get();

}

public void setEmail(String fName) {

email.set(fName);

}

@Override

public int compareTo(Person o) {

return firstName.get().compareToIgnoreCase(o.getFirstName());

}

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote