gpt4 book ai didi

JAVA - 如何在每次单击鼠标时创建新线程

转载 作者:搜寻专家 更新时间:2023-11-01 03:35:31 26 4
gpt4 key购买 nike

在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com