您的位置:首页 > 编程语言 > Java开发

Java实验(15)扑克牌

2016-06-24 15:14 666 查看
编程实现程序每次启动后,在界面上随机显示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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java