public class Poker extends JLabel implements MouseListener
public class Poker extends JLabel implements MouseListener {
private int rank; // 表示扑克牌的大小,2-14分别表示2-A
private int suit; // 表示扑克牌的花色,0-3分别表示黑桃、红桃、梅花和方块
public Poker(int rank, int suit) {
this.rank = rank;
this.suit = suit;
// 根据rank和suit来生成图片文件名字:"poker_X_Y.png",X是数字(2-14),Y是花色(1-4)。将这个文件名传入ImageIcon构造函数中去。
ImageIcon icon = new ImageIcon("poker_" + rank + "_" + suit + ".png");
setIcon(icon);// 设定JLabel的图标为该图片。
addMouseListener(this);// 添加鼠标监听器。 }
@Override
public void mouseClicked(MouseEvent e) { // 鼠标单击事件处理方法
if (e.getButton() == MouseEvent.BUTTON1) { // 如果是左键单击
System.out.println("你单击了一张 " + getRankName() + " " + getSuitName()); // 打印信息 } }
@Override public void mousePressed(MouseEvent e) {} // 鼠标按下事件处理方法 @Override public void mouseReleased(MouseEvent e) {} // 鼠标释放事件处理方法 @Override public void mouseEntered(MouseEvent e) {} // 鼠标进入区域时处理方法 @Override public void mouseExited(MouseEvent e) {} // 鼠标离开区域时处理方法
/ 获取扑克牌的大小 / private String getRankName() { switch (rank){ case 11: return "J"; case 12: return "Q"; case 13: return "K"; case 14: return "A"; default: return ""+rank; } } / 获取扑克牌的花色 / private String getSuitName() { switch (suit){ case 0: return "黑桃"; case 1: return "红心"; case 2: return "梅花"; case 3:return"方块"; default :return null; } }}
Prev:public class Poker extends JLabel implements MouseListener {