我需要有一个程序,当我点击卡片时它将翻转到卡片的背面,当我再次点击它时它会再次显示脸部。请帮忙,我点击卡片后会显示它的背面,但是如何让它再次显示在前面呢?
import java.awt.Button;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.JApplet;
public class DealCard extends JApplet implements ActionListener, MouseListener {
Random gen = new Random();
Button dealButton = new Button("Deal");
int card1 = 0;
Image[] card = new Image[53];
Image[] back= new Image[1];
int number = 0;
public void init() {
setSize(200, 200);
setLayout(null);
for (int i = 0; i < 53; i++) {
card[i] = getImage(getCodeBase(), "card" + (i + 1) + ".gif");
}
dealButton.setBounds(100, 200, 80, 30);
add(dealButton);
dealButton.addActionListener(this);
dealButton.setEnabled(true);
addMouseListener(this);
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(card[card1], 100, 100, 82, 82, this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == dealButton) {
card1 = gen.nextInt(52);
}
repaint();
}
public void mouseClicked(MouseEvent e){
int x = e.getX();
int y = e.getY();
if(x > 100 && x < (100+82) && y > 100 && y < (100+82)){
card1 = 52;
System.out.println(card1);
repaint();
e.consume();
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
}
答案 0 :(得分:3)
您需要一个布尔值来说明卡是否朝上。
然后在draw语句中添加一个条件,检查卡是否正面朝上。
希望有所帮助。
你还应该添加一张背卡图片,它不需要是一个数组,因为它只是一个。
Image back= new Image();
或者将card[0]
作为你的背卡图片。