den entsprechenden Dateinamen des Bildes erhalten, sobald die Taste @ gedrückt wur

Eine Reihe von Bilddateien wird zu einer Arrayliste (Dateiliste2) vom Typ Datei hinzugefügt. Wenn eine Bildansicht und eine Schaltfläche zu einer vbox hinzugefügt werden, werden diese vboxen mit einer for-Schleife zu einem Raster eines Griffs hinzugefügt (die Anzahl der Iterationen ist gleich) zur Größe der Dateiliste2) Sobald ein Knopf gedrückt wird, muss ich den entsprechenden Dateinamen des Bildes innerhalb dieser vbox erhalten. Angenommen, ich habe die Schaltfläche bei (1,1) gedrückt {d. H. Zeile Nr. 01, Spalte Nr. 1}. Ich muss den Dateinamen des Bildes bei (1,1) abrufen. Hier ist ein Screenshot:

hier ist mein Code: FXMLController

 File file = new File("D:\\SERVER\\Server Content\\Apps\\icons");
            File[] filelist1 = file.listFiles();
            ArrayList<File> filelist2 = new ArrayList<>();

            for (File file1 : filelist1) {
                filelist2.add(file1);

            }
            btnar = new ArrayList<>();
            for (int i = 0; i < filelist2.size(); i++) {
                downloadbtn = new Button("Download");
                btnar.add(downloadbtn);
                final int index=i;
                downloadbtn.setId(String.valueOf(index));
                downloadbtn.setOnAction(new EventHandler<ActionEvent>() {
                    @Override
                    public void handle(ActionEvent arg0) {
                        try {
                            System.out.println("sssss");                             
                            downloadbtn.getId();
                            //System.out.println(filelist2.get(Integer.valueOf(downloadbtn.getId())).getName());   

                        } catch (Exception ex) {
                            Logger.getLogger(HomeUI_2Controller.class.getName()).log(Level.SEVERE, null, ex);
                        }


                    }
                });
            }

            System.out.println(filelist2.size());
            gridpane.setAlignment(Pos.CENTER);
            gridpane.setPadding(new Insets(20, 20, 20, 20));

            gridpane.setHgap(20);
            gridpane.setVgap(20);

            ColumnConstraints columnConstraints = new ColumnConstraints();
            columnConstraints.setFillWidth(true);
            columnConstraints.setHgrow(Priority.ALWAYS);
            gridpane.getColumnConstraints().add(columnConstraints);

            int imageCol = 0;
            int imageRow = 0;

            for (int i = 0; i < filelist2.size(); i++) {
                System.out.println(filelist2.get(i).getName());

                image = new Image(filelist2.get(i).toURI().toString());

                pic = new ImageView();
                pic.setFitWidth(130);
                pic.setFitHeight(130);


                pic.setImage(image);
                vb = new VBox();
                vb.getChildren().addAll(pic, (Button) btnar.get(i));

                gridpane.add(vb, imageCol, imageRow);
                GridPane.setMargin(pic, new Insets(2, 2, 2, 2));
                imageCol++;

                // To check if all the 3 images of a row are completed
                if (imageCol > 2) {
                    // Reset Column
                    imageCol = 0;
                    // Next Row
                    imageRow++;
                }

            }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage