我正在用 Java 设计一个二十一点游戏。
我已经完成了游戏逻辑的编写,但在设计 GUI 时遇到了问题。
我有一个函数,每次玩家想要击球时都会生成随机数。
我拿起了一张二十一点牌桌的图像,并正在考虑在指定位置显示纸牌的图像。我还想要一个击中和站立按钮,再次在二十一点表的图像上。
我的代码显示了经销商和玩家的初始手牌,但问题是我无法想到Jframe
每次生成新牌时更新的代码。按钮也没有显示。那就是我寻求帮助的地方。我是使用 Jframes、Jpannels 等的初学者。这就是我所拥有的。
public class Check extends Panel {
BufferedImage img;
BufferedImage img1;
BufferedImage img2;
BufferedImage img3;
BufferedImage img4;
public Check()
{
try {
img = ImageIO.read(newFile("C:\\Users\\Abc\\Documents\\NetBeansProjects\\blackjack\\src\\blackjack\\images\\table.jpg"));
} catch (IOException e) {
}
try {
int n,j;
n=1 + (int)(Math.random() * ((4 - 1) + 1));
j=1 + (int)(Math.random() * ((13 - 1) + 1));
img1 = ImageIO.read(new File("C:\\Users\\Abc\\Documents\\NetBeansProjects\\blackjack\\src\\blackjack\\images\\"+n+"-"+j+".gif"));
} catch (Exception e) {
}
try {
int n,j;
n=1 + (int)(Math.random() * ((4 - 1) + 1));
j=1 + (int)(Math.random() * ((13 - 1) + 1));
img2 = ImageIO.read(new File("C:\\Users\\Abc\\Documents\\NetBeansProjects\\blackjack\\src\\blackjack\\images\\"+n+"-"+j+".gif"));
} catch (Exception e) {
}
try {
int n,j;
n=1 + (int)(Math.random() * ((4 - 1) + 1));
j=1 + (int)(Math.random() * ((13 - 1) + 1));
img3 = ImageIO.read(new File("C:\\Users\\Abc\\Documents\\NetBeansProjects\\blackjack\\src\\blackjack\\images\\"+n+"-"+j+".gif"));
} catch (Exception e) {
}
try {
img4 = ImageIO.read(new File("C:\\Users\\Abc\\Documents\\NetBeansProjects\\blackjack\\src\\blackjack\\images\\rear.gif"));
} catch (Exception e) {
}
}
public void paint(Graphics g) {
g.drawImage( img, 0, 0, this);
g.drawImage(img1, 470, 475, this);
g.drawImage(img2, 510, 475, this);
g.drawImage(img3, 510, 125, this);
g.drawImage(img4, 470, 125, this);
}
static public void main(String args[]) throws
Exception {
JFrame frame = new JFrame("Display image");
JButton b = new JButton("HIT");
b.setBounds(100,100,110,100);
b.setVisible(true);
Panel panel = new Check();
panel.add(b);
frame.getContentPane().add(panel);
frame.setSize(1024,768);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}