Programımdaki buradaki yenilemeyi tıklattığımda, 1 ile 13 arasında 5 rastgele sayı üretecek ve ekranda kart biçiminde gösterecektir. Bunun için JavaFx kullanıyorum. İkinci şeyi anlayamıyorum, sırala butonuna bastığımda program o anki rasgele sayı kümesini almalı ve kartları en düşükten en yükseğe göstermelidir. AradığınızdaJava'da rasgele bir yöntemden sayıların sıralanması
public class Cards extends Application {
public static void main(String[] args) {
Application.launch(args);
}
public static int mycard() {
Random rand = new Random();
int n = rand.nextInt(13) + 1;
return n;
}
public void start(Stage primaryStage) {
primaryStage.setTitle("Cards Layout");
GridPane pane = new GridPane();
pane.setAlignment(Pos.CENTER);
pane.setHgap(10);
pane.setVgap(5);
// creates button
Button refresh = new Button("Refresh");
HBox button = new HBox(10);
button.setAlignment(Pos.BOTTOM_LEFT);
button.getChildren().add(refresh);
pane.getChildren().add(refresh);
//Create sort button
Button sort = new Button("Sort");
HBox button1 = new HBox(10);
button1.setAlignment(Pos.BOTTOM_RIGHT);
button1.getChildren().add(sort);
pane.getChildren().add(sort);
// creates random card images and adds them to pane
Image img = new Image("image/card/"+mycard()+".png");
ImageView imgView = new ImageView(img);
pane.add(imgView, 1, 0);
Image img2 = new Image("image/card/"+mycard() +".png");
ImageView imgView2 = new ImageView(img2);
pane.add(imgView2, 2, 0);
Image img3 = new Image("image/card/" +mycard()+ ".png");
ImageView imgView3 = new ImageView(img3);
pane.add(imgView3, 3, 0);
Image img4 = new Image("image/card/" +mycard()+".png");
ImageView imgView4 = new ImageView(img4);
pane.add(imgView4, 4, 0);
Image img5 = new Image("image/card/" +mycard()+".png");
ImageView imgView5 = new ImageView(img5);
pane.add(imgView5, 5, 0);
Scene scene = new Scene(pane, 600, 200);
primaryStage.setScene(scene);
primaryStage.show();
refresh.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
imgView.setImage(new Image("image/card/" +mycard()+".png"));
imgView2.setImage(new Image("image/card/" +mycard()+".png"));
imgView3.setImage(new Image("image/card/" +mycard()+".png"));
imgView4.setImage(new Image("image/card/" +mycard()+".png"));
imgView5.setImage(new Image("image/card/" +mycard()+".png"));
}
});
sort.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
imgView.setImage(new Image("image/card/" + "1.png"));
imgView2.setImage(new Image("image/card/" + "2.png"));
imgView3.setImage(new Image("image/card/" + "3.png"));
imgView4.setImage(new Image("image/card/" + "4.png"));
imgView5.setImage(new Image("image/card/" + "5.png"));
//Cannot figure out what to do here^
}
});
}
}
hakkında biraz daha özel olabilir (ancak daha fazla kart ile uygulamaları için kod yeniden planı ben bir Listesini kullanmak istiyorum) bir Array kullanabilirsiniz sahip olduğundan sorun? Sayıları sıralarken mi yoksa görüntülerken mi? –