`A JavaFX program with a GridPane and 'regular' Pane were used both inside a StackPane. The GridPane has text fields and a button however they are not able to be interacted with for some reason.
This is the code:
package application;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import java.util.Arrays;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.chart.CategoryAxis;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.shape.Line;
import javafx.scene.shape.Polygon;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.Shape;
import javafx.scene.paint.Color;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Label Appearances = new Label("Champions League Appearances: ");
Label Goals = new Label("Champions League Goals: ");
Label Assists = new Label("Champions League Assists: ");
Label Ronaldo = new Label(" Ronaldo: ");
Label Messi = new Label(" Messi: ");
Label Lewandowski = new Label(" Lewandowski: ");
Label Benzema = new Label(" Benzema: ");
Label Raul = new Label(" Raúl: ");
Label van_Nistelrooy = new Label(" van Nistelrooy: ");
Label Muller = new Label(" Müller: ");
Label Henry = new Label(" Henry: ");
Label Ibrahimovic = new Label(" Ibrahimović: ");
Label Shevchenko = new Label(" Shevchenko: ");
TextField Txt1 = new TextField();
TextField Txt2 = new TextField();
TextField Txt3 = new TextField();
TextField Txt4 = new TextField();
TextField Txt5 = new TextField();
TextField Txt6 = new TextField();
TextField Txt7 = new TextField();
TextField Txt8 = new TextField();
TextField Txt9 = new TextField();
TextField Txt10 = new TextField();
TextField Txt11 = new TextField();
TextField Txt12 = new TextField();
TextField Txt13 = new TextField();
TextField Txt14 = new TextField();
TextField Txt15 = new TextField();
TextField Txt16 = new TextField();
TextField Txt17 = new TextField();
TextField Txt18 = new TextField();
TextField Txt19 = new TextField();
TextField Txt20 = new TextField();
TextField Txt21 = new TextField();
TextField Txt22 = new TextField();
TextField Txt23 = new TextField();
TextField Txt24 = new TextField();
TextField Txt25 = new TextField();
TextField Txt26 = new TextField();
TextField Txt27 = new TextField();
TextField Txt28 = new TextField();
TextField Txt29 = new TextField();
TextField Txt30 = new TextField();
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER_LEFT);
grid.setHgap(10);
grid.setVgap(10);
grid.add(Appearances, 1, 0);
grid.add(Goals, 2, 0);
grid.add(Assists, 3, 0);
grid.add(Ronaldo, 0, 1);
grid.add(Messi, 0, 2);
grid.add(Lewandowski, 0, 3);
grid.add(Benzema, 0, 4);
grid.add(Raul, 0, 5);
grid.add(van_Nistelrooy, 0, 6);
grid.add(Muller, 0, 7);
grid.add(Henry, 0, 8);
grid.add(Ibrahimovic, 0, 9);
grid.add(Shevchenko, 0, 10);
grid.add(Txt1, 1, 1);
Txt1.setAlignment(Pos.CENTER);
grid.add(Txt2, 2, 1);
Txt2.setAlignment(Pos.CENTER);
grid.add(Txt3, 3, 1);
Txt3.setAlignment(Pos.CENTER);
grid.add(Txt4, 1, 2);
Txt4.setAlignment(Pos.CENTER);
grid.add(Txt5, 2, 2);
Txt5.setAlignment(Pos.CENTER);
grid.add(Txt6, 3, 2);
Txt6.setAlignment(Pos.CENTER);
grid.add(Txt7, 1, 3);
Txt7.setAlignment(Pos.CENTER);
grid.add(Txt8, 2, 3);
Txt8.setAlignment(Pos.CENTER);
grid.add(Txt9, 3, 3);
Txt9.setAlignment(Pos.CENTER);
grid.add(Txt10, 1, 4);
Txt10.setAlignment(Pos.CENTER);
grid.add(Txt11, 2, 4);
Txt11.setAlignment(Pos.CENTER);
grid.add(Txt12, 3, 4);
Txt12.setAlignment(Pos.CENTER);
grid.add(Txt13, 1, 5);
Txt13.setAlignment(Pos.CENTER);
grid.add(Txt14, 2, 5);
Txt14.setAlignment(Pos.CENTER);
grid.add(Txt15, 3, 5);
Txt15.setAlignment(Pos.CENTER);
grid.add(Txt16, 1, 6);
Txt16.setAlignment(Pos.CENTER);
grid.add(Txt17, 2, 6);
Txt17.setAlignment(Pos.CENTER);
grid.add(Txt18, 3, 6);
Txt18.setAlignment(Pos.CENTER);
grid.add(Txt19, 1, 7);
Txt19.setAlignment(Pos.CENTER);
grid.add(Txt20, 2, 7);
Txt20.setAlignment(Pos.CENTER);
grid.add(Txt21, 3, 7);
Txt21.setAlignment(Pos.CENTER);
grid.add(Txt22, 1, 8);
Txt22.setAlignment(Pos.CENTER);
grid.add(Txt23, 2, 8);
Txt23.setAlignment(Pos.CENTER);
grid.add(Txt24, 3, 8);
Txt24.setAlignment(Pos.CENTER);
grid.add(Txt25, 1, 9);
Txt25.setAlignment(Pos.CENTER);
grid.add(Txt26, 2, 9);
Txt26.setAlignment(Pos.CENTER);
grid.add(Txt27, 3, 9);
Txt27.setAlignment(Pos.CENTER);
grid.add(Txt28, 1, 10);
Txt28.setAlignment(Pos.CENTER);
grid.add(Txt29, 2, 10);
Txt29.setAlignment(Pos.CENTER);
grid.add(Txt30, 3, 10);
Txt30.setAlignment(Pos.CENTER);
Pane BarGraph = new Pane();
ObservableList list = BarGraph.getChildren();
Line lin = new Line(630,450,1260,450);
Rectangle RonaldoApps = new Rectangle(630,400,50,50);
RonaldoApps.setFill(Color.DARKBLUE);
list.addAll(lin,RonaldoApps);
StackPane rootPane = new StackPane(grid, BarGraph);
Button SaveData = new Button("Save Changes");
SaveData.setOnAction(e ->{
double RonApps = Double.parseDouble(Txt1.getText().toString());
RonaldoApps.setHeight(RonApps);
});
grid.add(SaveData, 3, 11);
Scene scene = new Scene(rootPane, 1275, 570);
primaryStage.setTitle("CSC226 Project - All-Time UEFA Champions League Statistics");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {launch(args);}
}
I have tried to change the positioning of the grid and tried to change the types of panes but it did not work.`