package test;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
@SuppressWarnings("serial")
public class Test extends JFrame {
final int PokerWidth=71;
final int PokerHeight=96;
//x代表牌大小 y代表花色
public void showPoker(int x[],int y[]) {
//读取Poker图片
BufferedImage rImg=null;
try{
rImg=ImageIO.read(new File("D:\\Poker.jpg"));
} catch(IOException e){
e.printStackTrace();
}
//JOptionPane.showMessageDialog(null, rimg.getWidth()+"");
//设置内存中图片显示大小
BufferedImage bImg=new BufferedImage(rImg.getWidth(),rImg.getHeight
(),BufferedImage.TYPE_INT_ARGB);
//将读取的图片画到内存图片中去
bImg.createGraphics().drawImage(rImg,0,0,bImg.getWidth(),bImg.getHeight(),null);
BufferedImage[] pokers=new BufferedImage[4];
//截取内存图片中的一块区域(定位牌)-> 共四张牌
for (int i=0;i<pokers.length;i++)
pokers[i]=bImg.getSubimage( x[i]*71, y[i]*96, PokerWidth,PokerHeight );
//设置布局为两行三列(间隙为 0 ,5)
setLayout(new GridLayout(2,3,0,5));
//第一行显示的信息
JLabel sPlayer1_JL=new JLabel("玩家1");
//sPlayer1_JL.setAlignmentX(RIGHT_ALIGNMENT);
//sPlayer1_JL.setHorizontalTextPosition( SwingConstants.RIGHT);
sPlayer1_JL.setHorizontalAlignment( JTextField.RIGHT);
add(sPlayer1_JL);
add(new JLabel(new ImageIcon(pokers[0])));
add(new JLabel(new ImageIcon(pokers[1])));
//第二行显示的信息
JLabel sPlayer2_JL=new JLabel("玩家2");
sPlayer2_JL.setHorizontalAlignment( JTextField.RIGHT);
add(sPlayer2_JL);
//add(sPlayer1_JL);
add(new JLabel(new ImageIcon(pokers[2])));
add(new JLabel(new ImageIcon(pokers[3])));
//add(new JLabel(new ImageIcon(bImg)));
//显示窗体
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocation(10, 10);
setSize(rImg.getWidth(),rImg.getHeight());
// setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
//随机选取四张牌
int[] deck = new int[52];
for(int i=0;i<deck.length;i++) deck[i]=i;
//打乱牌序
for(int i=0;i<deck.length;i++){
int index=(int)(Math.random()*deck.length);
deck[i]=deck[i]^deck[index];
deck[index]=deck[index]^deck[i];
deck[i]=deck[i]^deck[index];
}
//选取四张牌
int[] suits={0,0,0,0};
int[] ranks=new int[13];
for(int i=0;i<4;i++){
suits[i]=deck[i]/13;
ranks[i]=deck[i]%13;
}
//显示Poker
Test test=new Test();
test.showPoker(ranks,suits);
}
}
è¿æ¯ä¸è¡ é£ä¸ªtestå
æ¯ç¨æ¥å¹²åçï¼å æå¯ä»¥ä¹ï¼
ä½ çæ件å¨åªä¸ªç®å½ï¼
è¦å¨é¡¹ç®çæ ¹ç®å½æ§è¡javaå½ä»¤ã
testå
æ¯ä½ ç¨åºä¸åçãä¸æ¯æè¦å ä¸çãæå
åçæ¶åï¼è¿è¡å¿
须带ä¸å
åãå¦åè°ä¸å°çã