我不确定我是否真的正确地提出了这个问题......我什至不确定我是否已经相关地表达了这个问题......所以,我提前道歉......但我很困惑在这个问题上并感谢所有帮助..此外,坦率地说,我不是专家,所以......请温柔一点,我不是想成为一个白痴。
所以,坦率地说,我的节目的重点是一个简单的游戏,基于电视上的某个游戏节目,它有生命线。这个特定的游戏是“给朋友打电话”......我有一个关于报价的报价按钮'(真的是一个JPanel
有一个MouseListener
)。按下此按钮后,我希望它添加并在 上绘制或JLabel
,以绘制动画 gif(倒计时)并锁定其他s 直到发生 30 秒。作为参考,我目前没有使用...JPanel
JFrame
Component
LayoutManager
我一直在尝试这样做的方式是:
ImageIcon CountdownImg = new ImageIcon("countdown.gif");
JLabel CountdownLbl = new JLabel(CountdownImg);
this.getContentPane().add(CountdownLbl);
CountdownLbl.setLocation(200, 200);
CountdownLbl.setSize(new Dimension(CountdownImg.getIconWidth(), CountdownImg.getIconHeight()));
long startTime = System.currentTimeMillis();
while(System.currentTimeMillis() < startTime + 30000) {
;
}
我知道我的while
循环存在问题。没有循环,图像可以成功渲染。有了它,java 会等到满足条件后才渲染CountdownLbl
。我还尝试JFrame
使用具有图像的内容窗格创建另一个,但是(可能再次,由于我自己的误解或线程不良......)但框架只是出现并且不呈现其内容。有时在运行它时我注意到有一个Image Fetcher
线程,我假设我的非常糟糕的循环可能会干扰这个线程,并且这个线程负责渲染我的图像。
所以我想问题应该是......我怎样才能真正实现这个......以线程安全的方式?如果这是正确的?
感谢您的时间、耐心和努力。