Java实验(15)扑克牌

来源:互联网 发布:intel 超频软件 编辑:程序博客网 时间:2024/04/29 11:11

编程实现程序每次启动后,在界面上随机显示54张扑克牌中的4张,并在其下方显示花色名(如图)。

 

扑克牌图片已打包到cards.jar文件中,命名规则见下图。


import javafx.application.Application;import javafx.scene.Scene;import javafx.stage.Stage;import java.io.*;import javafx.scene.image.*;import java.util.jar.*;import javafx.scene.layout.Pane;import javafx.geometry.Insets;import javafx.scene.layout.GridPane;import javafx.scene.text.Text;public class MyCard extends Application {    public static ImageView readImageFromJar(String jarname, String picname) {        ImageView imageView = null;        try {            JarFile jarFile = new JarFile(jarname);            JarEntry entry = jarFile.getJarEntry(picname);            InputStream in = jarFile.getInputStream(entry);            imageView = new ImageView(new Image(in));            in.close();            jarFile.close();        }         catch (IOException e) {            System.err.println("read file error.");        }        return imageView;    }    @Override    public void start(Stage primaryStage) {        int r1=(int)((Math.random()*100)%54);        int r2=(int)((Math.random()*100)%54);        int r3=(int)((Math.random()*100)%54);        int r4=(int)((Math.random()*100)%54);        GridPane pane=new GridPane();        pane.setPadding(new Insets(5,5,5,5));        String card1=new String("cards/"+String.valueOf(r1)+".png");        String card2=new String("cards/"+String.valueOf(r2)+".png");        String card3=new String("cards/"+String.valueOf(r3)+".png");        String card4=new String("cards/"+String.valueOf(r4)+".png");        ImageView imageView1 = readImageFromJar("cards.jar",card1);        ImageView imageView2 = readImageFromJar("cards.jar",card2);         ImageView imageView3 = readImageFromJar("cards.jar",card3);        ImageView imageView4 = readImageFromJar("cards.jar",card4);        String name1="     ", name2="     ", name3="     ", name4="     ";        name1=getName(name1,r1);        name2=getName(name2,r2);        name3=getName(name3,r3);        name4=getName(name4,r4);        Text t1=new Text(name1);        Text t2=new Text(name2);        Text t3=new Text(name3);        Text t4=new Text(name4);        pane.add(imageView1,0,0);        pane.add(t1,0,1);        pane.add(imageView2,1,0);        pane.add(t2,1,1);        pane.add(imageView3,2,0);        pane.add(t3,2,1);        pane.add(imageView4,3,0);        pane.add(t4,3,1);                Scene scene=new Scene(pane);        primaryStage.setTitle("第三题");        primaryStage.setScene(scene);        primaryStage.show();    }    public String getName(String name,int r){        if(r>=1 && r<=13)            name+="黑桃";        else if(r>=14 && r<=26)            name+="红桃";        else if(r>=27 && r<=39)            name+="方块";        else if(r>=40 && r<=52)            name+="梅花";        else if(r==53 || r==54)            name+="大王";        if(r!=53 && r!=54){            if(r==11 || r==24 || r==37 || r==50)                name+="J";            else if(r==12 || r==25 || r==38 || r==51)                name+="Q";            else if(r==13 || r==26 || r==39 || r==52)                name+="K";            else if(r==1 || r==14 || r==27 || r==40)                name+="A";            else                 name+=String.valueOf(r%13);        }        return name;     }    public static void main(String[] args) {        launch(args);    } }



0 0