Arraylist JavaFX中的集合

Arraylist JavaFX中的集合,arraylist,collections,javafx,Arraylist,Collections,Javafx,有人能告诉我如何在应用程序运行期间维护数组列表中的数据吗。假设我们有三节课。主类运行应用程序,并按“保存”按钮将数据添加到第二个类中,其中声明为私有数组列表。然后,当我们在数组列表中添加数据时,我们单击“下一个场景”按钮。当打开第二级即第三级时,会出现“显示”按钮,该按钮应显示添加到第一级中的数据,但它抛出了数组列表为空的错误 代码: 头等舱 public void start(Stage primaryStage) { final Button btn = new Button

有人能告诉我如何在应用程序运行期间维护数组列表中的数据吗。假设我们有三节课。主类运行应用程序,并按“保存”按钮将数据添加到第二个类中,其中声明为私有数组列表。然后,当我们在数组列表中添加数据时,我们单击“下一个场景”按钮。当打开第二级即第三级时,会出现“显示”按钮,该按钮应显示添加到第一级中的数据,但它抛出了数组列表为空的错误

代码:

头等舱

 public void start(Stage primaryStage) {
       final Button btn = new Button();
            btn.setLayoutX(121);
        btn.setLayoutY(125);
        btn.setText("Save");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {

                array.insert(20);
            }
        });

        final Button btn_next = new Button();
        btn_next.setLayoutX(btn.getLayoutY());
        btn_next.setLayoutY(btn.getLayoutX() + 54);
        btn_next.setText("Next Scene");
        btn_next.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {


                secondStage.start();

            }
        });

        Pane root = new Pane();
        root.getChildren().add(btn);
        root.getChildren().add(btn_next);

        Scene scene = new Scene(root, 300, 250);

        primaryStage.setTitle("Exercise");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

你能展示足够的代码让别人帮你吗?例如,在“第一类”中,变量
array
secondStage
在哪里声明和初始化?您
secondStage
类创建了
ArrayListClass
的新实例。您确定在第一个类中使用相同的实例吗?否则,
SecondStage
中的数组将始终基本为空,您在
SecondStage
中创建的
数组中绝不会添加任何内容。您只向“第一类”中创建的数据添加数据。我假设您只想在其他两个类之间共享
ArrayListClass
的一个实例,但是如果没有相关的代码,就很难给出完全有用的答案。是的,这就是我的意思。在两个或多个类之间共享数据,但我不知道如何访问它。或者将ArrayListClass作为静态类,这可能是解决方案?
public class ArrayListClass {

    private ArrayList <Integer> array = new ArrayList<>();
    private ObservableList  name_obs = FXCollections.observableArrayList(array);



    public void insert(int maxBound) {

      for(int i = 0; i < maxBound; i++) {

          name_obs.add(i);
      }

    }


    public Integer show(int i) {


       return (Integer) name_obs.get(i);

    }

}
public class SecondStage {

    private Stage secondaryStage = new Stage();
    ArrayListClass array = new ArrayListClass();


    public void start() {


        Button btn= new Button();
        btn.setText("Show");
        btn.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent event) {

                System.out.println(array.show(5));
                }
            }
        );

        StackPane root = new StackPane();
        root.getChildren().add(btn);

        Scene scene = new Scene(root, 300, 250);

        secondaryStage.setTitle("Exercise");
        secondaryStage.setScene(scene);
        secondaryStage.show();
    }


}
Executing /Users/Jenda/NetBeansProjects/ExerciseArrayList/dist/run542796410/ExerciseArrayList.jar using platform /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/bin/java
Exception in thread "JavaFX Application Thread" java.lang.IndexOutOfBoundsException: Index: 5, Size: 0
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:89)
    at exercisearraylist.ArrayListClass.show(ArrayListClass.java:36)
    at exercisearraylist.SecondStage$1.handle(SecondStage.java:36)
    at exercisearraylist.SecondStage$1.handle(SecondStage.java:31)
    at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
    at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
    at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
    at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
    at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
    at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
    at javafx.event.Event.fireEvent(Event.java:198)
    at javafx.scene.Node.fireEvent(Node.java:8216)
    at javafx.scene.control.Button.fire(Button.java:185)