java如何延迟重新绘制组件
我在做一个“骰子游戏”。我正在将jLabel添加到带有随机骰子图像的面板中。 我希望他们不要同时出现,而要推迟。 我找到了那根线。sleep()起作用。问题是,当我将sleep()放在for循环中时,循环循环和所有标签会同时重新绘制(在设置的睡眠量之后)。我的目标是显示第一个标签,睡眠时间,显示下一个,睡眠等等。 谢谢你的帮助
public void PaintLabels(Player[] players, Die[] dice, String[][] images) throws InterruptedException {
pnlDice.removeAll(); // Remove everything from the play-area
pnlDice.setLayout(new java.awt.GridLayout(players.length,6)); // Sets a new layout based on number of players
JLabel[] image = new JLabel[dice.length]; // Declares an array of labels based on number of dice
for (int i=0; i<players.length;i++) {
for (int j=0; j<dice.length; j++) {
image[j] = new JLabel();
image[j].setIcon(new ImageIcon(images[i][j])); // Set the image of the label
pnlDice.add(image[j]); // Add the label to the panel
Thread.sleep(200);
pnlDice.revalidate();
pnlDice.repaint();
}
}
}
共 (0) 个答案