在 java 中,如何在每次单击鼠标时将球放到面板上?假设我点击面板 3 次,那么面板中应该有 3 个球弹跳。
我有这个代码块:
ball = new Thread() {
public void run() {
while (true) {
x += speedX;
y += speedY;
}
}
};
ball.start();
repaint();
try {Thread.sleep(100/3);}catch(InterruptedException ex){}
以及画球的方法:
public void paintComponent(Graphics ball) {
super.paintComponent(ball);
if(clicks>0){
ball.setColor(Color.BLUE);
ball.fillOval((int) (x - rad), (int) (y - rad), (int)(2 * rad), (int)(2 * rad));
}
}
但是这个线程只在面板中丢了 1 个球。我也确实尝试了一系列线程,但它没有用。
最佳答案
面板的行为必须通过为面板设置 MouseListener 来定义,以启动将创建新球的新线程。
final JPanel p = new JPanel();
p.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
Thread ball = new Thread() {
public void run() {
while (true) {
x += speedX;
y += speedY;
}
}
};
ball.start();
p.repaint();
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
关于JAVA - 如何在每次单击鼠标时创建新线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33061825/