Java实验(15)扑克牌
2016-06-24 15:14
666 查看
编程实现程序每次启动后,在界面上随机显示54张扑克牌中的4张,并在其下方显示花色名(如图)。
扑克牌图片已打包到cards.jar文件中,命名规则见下图。
扑克牌图片已打包到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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树