gpt4 book ai didi

java - 在 JFrame 中重新加载 GUI 出现问题

转载 作者:行者123 更新时间:2023-12-01 17:57:28 26 4
gpt4 key购买 nike

我正在创建一个 Blackjack 游戏,每次用户单击按钮时都需要刷新 JFrame。然而,框架没有更新!我已经尝试了几个小时试图解决这个问题,但没有成功。

如何根据用于加载图像的 ImageIcon 对象堆栈正确重新加载框架中的所有元素?

这是我的代码:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Stack;

public class Blackjack extends JFrame implements ActionListener {
public void drawGUI(boolean firstTime) {
getContentPane().removeAll();

setLayout(new GridLayout(3, 9, 1, 1));
updateValues();

add(new JLabel(DEALER_TEXT, SwingConstants.CENTER));
add(new JLabel("Value: " + computerValue, SwingConstants.CENTER));
for(int i = 0; i < computerCards.size(); i++)
add(new JLabel(computerCards.get(i).getImagePath()));

leaveSpacing(false);

add(new JLabel(USER_TEXT, SwingConstants.CENTER));
add(new JLabel("Value: " + userValue, SwingConstants.CENTER));
for(int i = 0; i < userCards.size(); i++)
add(new JLabel(userCards.get(i).getImagePath()));

leaveSpacing(true);

if(firstTime) {
hitButton.addActionListener(this);
standButton.addActionListener(this);
}

leaveSpacing(3);
add(hitButton);
add(standButton);
leaveSpacing(1);
}
}

最佳答案

您需要在 drawGUI(); 方法末尾调用 revalidate();repaint();。这应该可以解决问题。

这个问题之前已经回答过了,但是,请参阅:Java Swing revalidate and repaint

关于java - 在 JFrame 中重新加载 GUI 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43557094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com