import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.*;
import javax.swing.*;
import java.util.Timer;
import java.awt.event.*;
import java.awt.event.*;
import javax.swing.*;
class autos extends JLabel
{
@SuppressWarnings("serial")
int z=100,i=50;
public static void main(String[] args)
{
JFrame frame=new JFrame("Rectangle");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setSize(1000,1000);
frame.add(new autos());
}
@Override
public void paintComponent(Graphics g)
{
for(i=1;i<=7;i++)
{
g.drawRect(z,100,100,100);
z=z+120;
//timer delay
}
}
}
你好,我试图创建一个Java程序,一个接一个地拖延(不是所有的一次)绘制mre矩形。在java中实现一个定时器
由于睡眠和TimeUnit
将冻结paintComponent
,我有点无知。我试图用一个计时器来延迟,但我失败了。我不明白如何使用计时器在这种情况下。
如何在矩形之间进行时间延迟?
*“由于睡眠和TIMEUNIT将冻结'paintComponent'” *和延迟不会呢? – user2004685
您似乎在使用'java.util.Timer',尝试['javax.swing.Timer'](https://docs.oracle.com/javase/8/docs/api/javax/swing/Timer的.html)。另请参阅[如何使用Swing定时器](https://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html)。 –
@ user2004685“延迟”是什么意思? –