|  import javafx.beans.property.SimpleStringProperty;
 import javafx.beans.property.StringProperty;
 
 public class Main {
 public static void main(String[] args) {
 Student contact = new Student("FirstName", "LastName");
 StringProperty fname = new SimpleStringProperty();
 fname.bindBidirectional(contact.firstNameProperty());
 StringProperty lname = new SimpleStringProperty();
 lname.bindBidirectional(contact.lastNameProperty());
 
 System.out.println(fname.getValue() + " " + lname.getValue());
 System.out.println(contact.getFirstName() + " " + contact.getLastName());
 
 fname.setValue("new FirstName");
 lname.setValue("new LastName");
 
 System.out.println(fname.getValue() + " " + lname.getValue());
 System.out.println(contact.getFirstName() + " " + contact.getLastName());
 }
 }
 
 class Student {
 
 private SimpleStringProperty firstName = new SimpleStringProperty();
 private SimpleStringProperty lastName = new SimpleStringProperty();
 
 public Student(String fn, String ln) {
 firstName.setValue(fn);
 lastName.setValue(ln);
 }
 
 public final String getFirstName() {
 return firstName.getValue();
 }
 
 public StringProperty firstNameProperty() {
 return firstName;
 }
 
 public final void setFirstName(String firstName) {
 this.firstName.setValue(firstName);
 }
 
 public final String getLastName() {
 return lastName.getValue();
 }
 
 public StringProperty lastNameProperty() {
 return lastName;
 }
 
 public final void setLastName(String lastName) {
 this.lastName.setValue(lastName);
 }
 }
 
 
 
 |