Programming exercises : 14.3 (Display three cards). You can use the link below f
ID: 3855778 • Letter: P
Question
Programming exercises: 14.3 (Display three cards).
You can use the link below for 52 cards.
public Image randomImage(){
Random rand = new Random();
int random = rand.nextInt(12);
int randomType = rand.nextInt(3);
String[] value = {"2","3","4","5","6","7","8","9", "a","j","k","q","t"};
String[] typeOfCard = {"c","h","d","s"};
Image image = new Image("http://www.cs.duke.edu/csed/ap/cards/images/"+value[random]+typeOfCard[randomType]+".gif");
return image;
}
Explanation / Answer
I couldn't find card images. Create a Directory "Image" then "Cards" and edit the files path accordingly.
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.geometry.Insets;
import java.util.ArrayList;
public class Exercise_14_03 extends Application {
@Override // Override the start method in the Application class
public void start(Stage primaryStage) {
// Create a list of card numbers
ArrayList<Integer> cards = getCards();
// Create a HBox pane
HBox pane = new HBox(5);
pane.setPadding(new Insets(5, 5, 5, 5));
// Add nodes to pane
for (int i = 0; i < 3; i++) {
pane.getChildren().add(new ImageView(new Image("image/card/" +
cards.get(i) + ".png")));
}
// Create a scene and place it in the stage
Scene scene = new Scene(pane);
primaryStage.setTitle("Exercise_14_03"); // Set the stage title
primaryStage.setScene(scene); // Place the scene in the stage
primaryStage.show(); // Display the stage
}
/** Returns a list with numbers 1-52 stored in random order */
private ArrayList<Integer> getCards() {
ArrayList<Integer> cards = new ArrayList<>();
for (int i = 0; i < 52; i++) {
cards.add(i + 1);
}
java.util.Collections.shuffle(cards);
return cards;
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.