我编的多线程的程序,会翻转图片,如何能通过鼠标进入该窗口,图片会暂停,离开以后图片继续翻转!

xuqi92188 2003-10-09 10:29:12
我编的多线程的程序,会翻转图片,如何能通过鼠标进入该窗口,图片会暂停,离开以后图片继续翻转!
...全文
38 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlnet 2004-01-18
  • 打赏
  • 举报
回复
start()只能运行一次,应该用wait()在run()的循环内调用wait(),
线程方法来notify()唤醒!
qqbz 2004-01-18
  • 打赏
  • 举报
回复
你应该先去看看有关线程的概念:
1、程序启动就开始你的线程。
2、在线程中设置是否继续运行的标志位。
3、通过你的两个事件改变标志位。
4、现在每次mouseExited会启动一次thisThread.start()。
5、wait()用法不是这样的。这么简单的线程根本用不到wait
wlnet 2004-01-18
  • 打赏
  • 举报
回复
在线程里设置标记,
通过线程方法修改此标记,
发现该停止时就wait(),
再在线程中增加唤醒方法来唤醒线程,如:
public void go() {
synchronized(this){
this.notify();
}
}
jokerjava 2004-01-18
  • 打赏
  • 举报
回复
void this_mouseExited(MouseEvent e) {
//imgStop=0;
try {
thisThread.start(); 改成thisThread.nodify(); this is ok.
}
catch (Exception ex) {

}
}
xuqi92188 2003-10-09
  • 打赏
  • 举报
回复
private void jbInit() throws Exception {
this.setBackground(Color.white);
this.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
this_mouseClicked(e);
}
public void mouseEntered(MouseEvent e) {
this_mouseEntered(e);
}
public void mouseExited(MouseEvent e) {
this_mouseExited(e);
}
});
}

void this_mouseEntered(MouseEvent e) {
//imgStop=1;
try {
thisThread.wait();
}
catch (Exception ex) {

}
}

void this_mouseExited(MouseEvent e) {
//imgStop=0;
try {
thisThread.start();
}
catch (Exception ex) {

}
}

不行啊
LoveRose 2003-10-09
  • 打赏
  • 举报
回复
鼠标进入窗口时响应mouseEntered事件让线程停止(暂停)
鼠标离开窗口时响应mouseExited时间让线程启动 (恢复)
xuqi92188 2003-10-09
  • 打赏
  • 举报
回复
我是小应用程序,我启动了一个线程来翻转图片,我想在鼠标事件中控制线程的运作,但是好像不行。thisThread是控制图片运行的线程。在this_mouseEntered暂停线程。在this_mouseExited启动线程。但是实际效果是鼠标进入图片区域,图片仍然翻动,不会停止。我想有谁指出我的错误。还有在jb中指出线程的stop()方法已经不推荐使用了,我用过stop()代替wait(),也不行。
star_xing 2003-10-09
  • 打赏
  • 举报
回复
Component组件中的方法,绝大多数都是单线程的。因此,用线程来控制图片的翻转与否,是不现实的。建议你在mouse的方法中,直接对图片进行控制。

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧