Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • How to Resolve Invoation Target Exception Error in JAVA

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 385
    Answer it

    public class MainGUI extends Application {
        
        public void start(Stage primaryStage) {
            
            class deck {
                public ArrayList <Integer> Deck;
                
                
                
                public ArrayList<Integer> shuffleDeck(ArrayList<Integer> Deck) { 
                    int x = 52;
                    for (int i = 1; i <= x; ++i ) {
                    Deck.add(i);
                    }
                    Collections.shuffle(Deck);
                    return Deck;
             
            }
                
                public  ArrayList<Integer> randomCardsSelector(int x, ArrayList<Integer> Deck){
                    ArrayList<Integer> selectedCards = new ArrayList<Integer>();
                    Random rand = new Random();
                    for(int i = 1; i <= x; ++i) {
                        int newElement = rand.nextInt(Deck.size());
                        selectedCards.add(Deck.get(newElement));
                        Deck.remove(newElement);
                        }
                    return selectedCards;
                }
            
            }
            
            
            
            //Horizontal box containing Label, TextField, Button, Cards drawn
            HBox topContainer = new HBox();
            topContainer.setSpacing(10);
            topContainer.setPadding(new Insets(25,50,25,50));
            
            //This is the label
            Label insertNbr = new Label();
            insertNbr.setText("Number of cards:");
            insertNbr.setPadding(new Insets(5,5,5,5));
            
            //This the TextField
            TextField cardNbr = new TextField();
            cardNbr.setPadding(new Insets(5,5,5,5));
            cardNbr.setPrefWidth(30);
            
            //This is the submit button
            Button submitBtn = new Button();
            submitBtn.setPadding(new Insets(5,5,5,5));
            submitBtn.setText("Submit");
            
            HBox newBox = new HBox();
            //This is the fetch button
            Button fetchBtn = new Button();
            fetchBtn.setPadding(new Insets(5,5,5,5));
            fetchBtn.setText("Fetch");
            fetchBtn.setDisable(true);
            
            //This is the button to draw a card from the array
            Button drawCardBtn = new Button("Get Card");
            drawCardBtn.setPadding(new Insets(5,5,5,5));
            
            Button higherBtn = new Button();
            higherBtn.setPadding(new Insets(5,5,5,5));
            higherBtn.setText("Higher");
            
            Button lowerBtn = new Button();
            lowerBtn.setPadding(new Insets(5,5,5,5));
            lowerBtn.setText("Lower");
            
            
                    
            newBox.getChildren().addAll(fetchBtn,drawCardBtn,higherBtn,lowerBtn);
            
            ImageView drawnCard = new ImageView();
            
            //Spacer between left nodes and right nodes
            final Pane spacer = new Pane();
            HBox.setHgrow(spacer, Priority.ALWAYS);
            spacer.setMinSize(10, 1);
            
            //FlowPane to add drawn cards
            FlowPane drawnCards = new FlowPane();
            drawnCards.setPadding(new Insets(5,5,5,5));
            drawnCards.setMaxSize(360, 100);
            drawnCards.setStyle("-fx-background-color: #008080");
            
            topContainer.getChildren().addAll(insertNbr,cardNbr,submitBtn,spacer,drawnCards);
            
            
            /*This is the main pane that will
             * hold all of the other panes 
             * and components
             */
            BorderPane mainPane = new BorderPane();
            mainPane.setTop(topContainer);
            mainPane.setLeft(newBox);
            mainPane.setCenter(drawnCard);
                    
            Scene scene = new Scene(mainPane, 1000, 700);
            primaryStage.setTitle("Card Game");
            primaryStage.setResizable(false);
            primaryStage.setScene(scene);
            primaryStage.show();
            
            deck firstDeck = new deck();
            deck secondDeck = new deck();
            
            firstDeck.Deck = firstDeck.shuffleDeck(firstDeck.Deck);
            
            
            
            submitBtn.setOnAction(e->{
                int number = Integer.parseInt(cardNbr.getText());
                secondDeck.Deck = secondDeck.randomCardsSelector(number, firstDeck.Deck);

                fetchBtn.setDisable(false);
                submitBtn.setDisable(true);
                
                for(int i = 0; i<number; i++) {
                    int x = secondDeck.Deck.get(i);
                    String url = new String("bin/"+ x +".png");
                    File file1 = new File(url);
                    Image image1 = new Image(file1.toURI().toString());
                    ImageView imageView = new ImageView(image1);
                    imageView.setFitHeight(90);
                    imageView.setFitWidth(90);
                    drawnCards.getChildren().add(imageView);
                }
            });
            
            
            
            fetchBtn.setOnAction(e->{
                fetchBtn.setDisable(true);
                
                ArrayList<Integer> selectedNewCard= new ArrayList<Integer>();
                selectedNewCard = firstDeck.randomCardsSelector(1, firstDeck.Deck);
                
                int s = selectedNewCard.get(0);
                String url = new String("bin/" + s + ".png");
                File file2 = new File(url);
                Image img = new Image(file2.toURI().toString());
                drawnCard.setImage(img);
                drawnCard.setFitHeight(150);
                drawnCard.setFitWidth(150);
            });
            
            drawCardBtn.setOnAction(e->{
                drawCardBtn.setDisable(false);
                
                ArrayList<Integer> oneCard = new ArrayList<Integer>();
                oneCard = secondDeck.randomCardsSelector(1,secondDeck.Deck);
                int number = oneCard.get(0);
                String url = new String("bin/" + number + ".png");
                File file3 = new File(url);
                Image image = new Image(file3.toURI().toString());
                drawnCard.setImage(image);
                drawnCards.getChildren().get(0).setStyle("-fx-opacity: 0.5");
            });
                
            
            
         //drawnCards.getChildren().get(3).setStyle("-fx-opacity: 0.5");
        }

        
        public static void main(String[] args) {
            
            
            launch(args);
            
        }

    }


     

 0 Answer(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: