Adding a simple button in java but java doesn't let me

Ok, so from my point of view, my code is pretty decent to get the grades passing, but I am having trouble adding a simple refresh / shuffle button. DO NOT USE JOptionPane Aids. Eclipse doesn't seem to recognize that I created a button that doesn't make sense to me at all, because it tells me something about Node, which Button is actually Node, and it's created. But when I switch to another class and add another button with an example of 3 lines, it just works. But when I go to my home program, it just gives me an error in the add method, which breaks the whole program! He speaks

"The add (Node) method in the type list is not applicable for arguments (Button)"

Can anyone shed some light on where I might be wrong in my code? It should be something like a Node to convert strings or something that I just can't understand. Wanting to take any hints provided to me, but please DO NOT SOLVE THE PROBLEM FOR ME.

Here is the question from the book mainly. "Write a program that allows the user to click the refresh button to display four cards from a deck of 54 cards."

I just need help on this button. I literally rest.

Here is my code. I left the import because there are too many of them.

import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.stage.Stage; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import java.awt.Button; import java.io.File; import java.util.ArrayList; public class Cards extends Application { public void start(Stage primaryStage) { ArrayList<String> cards = new ArrayList<>(); //Array list Shuffle(cards); //Shuffles the Cards String file1 = new File("cards" + "/" + cards.get(1) + ".png").toURI().toString(); String file2 = new File("cards" + "/" + cards.get(2) + ".png").toURI().toString(); String file3 = new File("cards" + "/" + cards.get(3) + ".png").toURI().toString(); String file4 = new File("cards" + "/" + cards.get(4) + ".png").toURI().toString(); Pane pane = new HBox(20); //Creates the Box for the Images pane.setPadding(new Insets(5, 5, 5, 5)); //Spreads the Images out Image image = new Image(file1); //Creates the String Image Image image2 = new Image(file2); Image image3 = new Image(file3); Image image4 = new Image(file4); pane.getChildren().add(new ImageView(image)); //Adds the First Image ImageView view1 = new ImageView(image); view1.setFitHeight(100); view1.setFitWidth(100); pane.getChildren().add(new ImageView(image2)); //Adds the Second Image ImageView view2 = new ImageView(image2); view2.setFitHeight(100); view2.setFitWidth(100); pane.getChildren().add(new ImageView(image3)); //Add the Third Image ImageView view3 = new ImageView(image3); view3.setFitHeight(100); view3.setFitWidth(100); pane.getChildren().add(new ImageView(image4)); //Add the Fourth Image ImageView view4 = new ImageView(image4); view4.setFitHeight(100); view4.setFitWidth(100); HBox hbox = new HBox(5); //Creates the Box for the Button Button shuffle = new Button("Shuffle"); //Creates the Button hbox.getChildren().add(shuffle); //Should add the button but doesn't shuffle.addActionListener( e -> //Listener for the button { Shuffle(cards); }); BorderPane pane2 = new BorderPane();/ /Creates the Pane for the Button pane2.setCenter(pane); //Sets the cards in the Center pane2.setBottom(hbox); //Sets the Button on the bottom BorderPane.setAlignment(hbox, Pos.CENTER); hbox.setAlignment(Pos.BOTTOM_CENTER);//Aligns the Button to BOT_CENTER Scene scene = new Scene(pane2); //Creates the Scene primaryStage.setTitle("Cards"); primaryStage.setScene(scene); primaryStage.show(); } public void Shuffle(ArrayList<String> cards) //Allows the cards to Shuffle when called. { for (int i = 0; i <= 53; i++) //Sets the Number of Cards in Deck cards.add(String.valueOf(i+1)); java.util.Collections.shuffle(cards); } public static void main(String[] args) { launch(args); } } 
+5
source share
1 answer

You are using an AWT button with your import java.awt.Button; so you can use the public void addActionListener(ActionListener l) method.

Replace import with import javafx.scene.control.Button; . Alternatively, you can use (analog code) the following lambda:

 shuffle.setOnAction( (x) -> //Listener for the button { Shuffle(cards); }); 

Try it :)

+4
source

Source: https://habr.com/ru/post/1259439/


All Articles