I would like to create an application in Java I can use to plot points onto a scatterplot. I'm using the JFreeChart external library for this. I've tried creating a text.box to input the values, however it wont let me use the variable in different methods could someone please help me it'd be greatly appreciated.
package Grava;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.TextField;
import javafx.scene.image.Image;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.statistics.HistogramDataset;
import org.jfree.chart.fx.ChartViewer;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtils;
import org.jfree.chart.JFreeChart;
import org.jfree.data.statistics.HistogramDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import java.io.File;
import java.io.IOException;
public class Main extends graph{
    static Stage window;
    Stage window1;
    Button button;
    Button exitButton;
    Button button1;
    public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        window = primaryStage;
        window.setTitle("Grava");
        Image image = new Image("Grava.logo.png");
        window.getIcons().add(image);
        String arr[] = {"Voltage", "Current", ""};
        /*
        Integer yVariables[] = {4, 6, 8, 10};
        Integer xVariables[] = {1, 2, 3, 4};
        Integer deltaY = ((yVariables[(yVariables.length - 1)]) - (yVariables[0]));
        Integer deltaX = ((xVariables[(xVariables.length - 1)]) - (xVariables[0]));
        Integer gradient = ((deltaY) / (deltaX));
        */
        ChoiceBox dropDown = new ChoiceBox(FXCollections.observableArrayList(arr));
        GridPane grid = new GridPane();
        grid.setPadding(new Insets(10, 10, 10, 100));
        grid.setVgap(8);
        TextField passInput = new TextField();
        passInput.setPromptText("password");
        GridPane.setConstraints(passInput, 1, 0);
        TextField Xbox1 = new TextField();
        passInput.setPromptText("password");
        GridPane.setConstraints(Xbox1, 5, 0);
        TextField Xbox2 = new TextField();
        passInput.setPromptText("password");
        GridPane.setConstraints(Xbox2, 10, 0);
        button = new Button("click me");
        GridPane.setConstraints(button, 1, 2);
        button.setOnAction(e -> System.out.println(passInput.getText()));
        button1 = new Button("click me for graph");
        GridPane.setConstraints(button1,100,50);
        button1.setOnAction(e->{
            GridPane grid1 = new GridPane();
            grid.setPadding(new Insets(10, 10, 10, 100));
            grid.setVgap(8);
            java.awt.Button button = new java.awt.Button("hey click me");
            ChartViewer viewer = new ChartViewer(createChart());
            window.setScene(new Scene(viewer));
            Scene scene = new Scene(grid1, 300, 200);
            window.setTitle("VI Characteristics graph");
            window.setWidth(600);
            window.setHeight(400);
            window.show();
                });
        exitButton = new Button("Exit button");
        GridPane.setConstraints(exitButton, 10, 10);
        exitButton.setOnAction(e -> closeProgram());
        grid.getChildren().addAll(passInput,Xbox1,Xbox2, button,button1, exitButton, dropDown);
        Scene scene = new Scene(grid, 300, 200);
        ChartViewer viewer = new ChartViewer();
        //window.setScene();
        window.setScene(scene);
        window.show();
    }
    public static JFreeChart createChart() {
        XYSeriesCollection dataset = new XYSeriesCollection();
        XYSeries series1 = new XYSeries("Voltage");
        series1.add(10, 35);
        series1.add(11, 37);
        series1.add(12, 41);
        series1.add(12, 39);
        series1.add(13, 44);
        series1.add(14, 51);
        series1.add(15, 52);
        series1.add(15, 54);
        series1.add(16, 57);
        series1.add(17, 62);
        series1.add(17, 66);
        series1.add(18, 70);
        dataset.addSeries(series1);
        JFreeChart scatterPlot = ChartFactory.createScatterPlot(
                "VI Characteristics graph", // Chart title
                "Voltage", // X-Axis Label
                "Current", // Y-Axis Label
                dataset // Dataset for the Chart
        );
        return scatterPlot;
    }
    private static void closeProgram(){
        System.out.println("File saved");
        window.close();
    }
}
