纸牌的界面类CardFace
CardFace负责显示一张牌及响应打牌人对它的操作。CardFace知道牌大小(size)、位置(location)、显示哪张牌(Card)。我找到纸牌图片的大小为71×96的位图,CardFace的大小就只好设为71×96了。照此完成的CardFace类代码如下:
package yxc.card.ui.graph;
import java.awt.Dimension;
import java.awt.Point;
import yxc.card.common.Card;
public class CardFace extends javax.swing.JPanel {
private Card card;
private Point location;
public CardFace(Card card) {
super();
this.card=card;
location=new Point(0,0);
initGUI();
}
private void initGUI() {
try {
setSize(new Dimension(71,96));
} catch (Exception e) {
e.printStackTrace();
}
}
public Card getCard() {
return card;
}
public void setCard(Card card) {
this.card = card;
}
public Point getLocation() {
return location;
}
public void setLocation(Point location) {
this.location = location;
}
}
CardFace类做出来了,把一张牌放到TableBoardPanel看。在TableBoardPanel类中加入黑体部分的代码。
private void initGUI() {
try {
this.setPreferredSize(new java.awt.Dimension(788, 469));
this.setBackground(new java.awt.Color(0,128,192));
this.setLayout(null);
addCard();
} catch (Exception e) {
e.printStackTrace();
}
}
private void addCard(){
Card card=new Card(1);
CardFace cardFace=new CardFace(card);
cardFace.setLocation(new Point(100,100));
Dimension size=cardFace.getSize();
Point location=cardFace.getLocation();
cardFace.setBounds(new Rectangle(location.x, location.y,size.width, size.height));
add(cardFace);
}
到此,运行CardApplication,应该有一张有位置,有大小的牌显示在窗口中,但不知这张牌是什么牌?并且这张牌不能响应你的操作。