我有一個程序,創建一個隨着多線程移動到隨機位置的圓,每個線程將處理每個圓的運動。我知道如何移動圖像而不是形狀對象。java移動一個形狀對象
g2d.draw(s.circle);
這一行只能繪製帶有spawn x y的圓。我想嘗試添加 s.circle.getBounds()。setLocation(s.x,s.y); 之前 g2d.draw(s.circle); 但沒有效果
public void paint(Graphics g) {
if (draw == true) {
super.paint(g);
Graphics2D g2d = (Graphics2D)g;
for (Star s : this.items) {
//g2d.drawImage(s.starImage, s.x, s.y, this);
g2d.draw(s.circle);
}
Toolkit.getDefaultToolkit().sync();
g.dispose();
}
}
public void run() {
//if (!items.isEmpty()) {
while(true){
try {
for (Star s : this.items) {
s.move();
}
repaint();
Thread.sleep(50);
} catch (InterruptedException ex) {
Logger.getLogger(Board.class.getName()).log(Level.SEVERE, null, ex);
}
}
//}
}
發生了什麼?順便說一句,我不認爲你需要一個線程的單一形狀。 –
單擊一個圈一個動作 – hkguile
我知道它的夥伴,我做了一個像你的應用程序,它運行在一個單一的線程。 –