Simple_TailRecursion1
 
code:

package javafxtemplate1;

//textProperty().addListener Listview Label
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.control.Label;
import javafx.scene.control.ListView;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;


/**
*
* @author Manas9
*/
public class JavaFXTemplate1 extends Application {
TextArea textArea1= new TextArea ();
TextArea textArea2= new TextArea ();
String newLine = "\n";static int xx1 ;
@Override
public void start(Stage primaryStage) throws Exception {
//
Group groot1 = new Group();
Label label1 = new Label(); label1.setText("Type anything");
label1.setLayoutX(10);label1.setLayoutY(20);

textArea1.setLayoutX(10);textArea1.setLayoutY(90);
textArea1.setPrefHeight(300);textArea1.setPrefWidth(300);
textArea1.setPromptText("textarea1");
//
textArea2.setLayoutX(100);textArea2.setLayoutY(90);
textArea2.setPrefHeight(100);textArea2.setPrefWidth(100);
textArea2.setPromptText("textarea2");
//
TextField textField = new TextField ();
textField .setLayoutX(160);textField .setLayoutY(20);
textField.setPromptText("Enter an Integer");
textField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
label1.setText("you Entered "+newValue);
xx1 = Integer.parseInt(newValue);
textArea1.appendText("factorials "+String.valueOf(recursion(xx1)));
//textArea2.appendText("factorials "+String.valueOf(recursion(xx1)));
}
});
groot1.getChildren().addAll(label1, textField, textArea1);

//Scene scene = new Scene(groot, 350, 150);
Scene scene = new Scene(groot1, 350, 250);
primaryStage.setScene(scene);
primaryStage.setTitle("Linked Data:: Recursions");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
private int recursion(int n1) {

if (n1==1) { return n1; }
else {
textArea1.appendText("f-received ::Base "+ n1+ newLine);
return recursion_1(n1,1);
}

}
private int recursion_1 ( int n, int sum )
{
int x, fact = sum;
if(n==1)
{ return sum; }
else
{
print(n);
sum = sum *n;
textArea1.appendText("f- tail sum :: "+ n + " * "+ fact+ " = "+ sum+ newLine);
return recursion_1(n-1,sum);
}

}
private void print(int n1)
{
textArea1.appendText("f-tail proessed :: "+ n1 +newLine);
}
}

/*
Convert using Integer.toString(int)
Convert using String.valueOf(int)
Convert using new Integer(int).toString()
Convert using String.format()
*/

Displays: