【发布时间】:2016-05-28 02:05:44
【问题描述】:
我对 java 很陌生(大约一年的自学)所以我有一个问题。
我正在制作一个扑克游戏,它实现了一个完整的 GUI 来配合它。我有一个用于所有输出的 JTextArea(有点像实时控制台输出)。我用过以下,
private void printer(String s, int delay){
messageDelay = new Timer( delay, new ActionListener(){
@Override
public void actionPerformed( ActionEvent e ){
dealerText.append("Dealer>> " + s + "\n");
}
} );
messageDelay.setRepeats( false );
messageDelay.start();
}
然后在这里调用方法,
private void runGame(){
printer("Dealing Cards...", 2000);
firstCard.setVisible(true);
secondCard.setVisible(true);
我希望卡片在 2 秒延迟后显示,但它们会立即出现。我知道这里有问题我只是不知道如何解决它。提前致谢
【问题讨论】:
-
您的
setVisible(true)调用应该在Timer中的actionPerformed方法中。 -
@JaroslawPawlak 我希望使用打印机作为延迟消息的通用方式,而不仅仅是一个实例
-
只有
actionPerformed方法里面的代码有延迟。在此方法中添加System.out.println,并在您调用setVisible的位置旁边添加,然后查看它们何时打印。 -
我知道@JaroslawPawlak,这就是为什么我要问如何延迟此消息然后继续运行命令。谢谢顺便说一句