我創建了一個類,即兩個橢圓。在這裏,我畫他們。在Java動畫中使用線程
import ...;
public class Drawings extends JPanel{
public double degrees = 0;
public void paintComponent(Graphics g){
super.paintComponent(g);
int xcen = getWidth()/2;
int ycen = getHeight()/ 2;
int radius = 10;
degrees++;
double radians = Math.toRadians(degrees);
int posx = (int)(100.getDistance() * Math.cos(radians));
int posy = (int)(100.getDistance() * Math.sin(radians));
g.setColor(Color.BLUE);
g.FillOval(xcen + posx, ycen + posy, 20, 20);
g.setColor(Color.GREEN);
g.drawOval(xcen + posx, ycen + posy, 100,100)
}
}
現在我在主要實現它。
import ....;
public class Animate extends JFrame{
public static void main(String [] args)
{
JFrame window = new JFrame();
window.add(new Drawings());
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setSize(500,500);
window.setLocationRelativeTo(null);
window.setVisible(true);
//now I implement the thread to animate the two shapes
Thread paintThread = new Thread(new Runnable(){
@Override
public void run(){
while(true)
{
window.repaint();
try{
Thread.sleep(25);//determines how slow the ovals will move
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
});
paintThread.start();//start the animation
}
}
當程序運行時,兩個橢圓在屏幕上旋轉。但是這兩個橢圓的旋轉速度與我所期望的相同,但我希望兩個橢圓以不同的速度移動。
我試過用一種方法將它們以不同的速度移動但沒有成功。 我將如何獲得以不同速度移動的兩個橢圓形?
究竟你有試過嗎? –
創建一個方法來設置每個橢圓正在移動的速度,但不起作用,它不合邏輯有效。 – Jonathan
你有沒有嘗試在自己的線程中繪製每個橢圓形?你可以睡不同的時間。 –