標題:
java2個指令同時執行
發問:
- 中油球場(八德路二段218 巷1號)@1@
- 嘉義市哪裡有在幫人家算命@1@
- 【公車】民族東路口來回介壽國中與市府@1@
- 北投復興岡站要怎麼搭車到復興商工---
- 如何從新莊到內湖高工---
- 急...請問
- (單親)勞保退休金 媽媽 滿疲累想退休 請求 有心人士 指點@1@
- 國光客運 南投-台北 的票錢?@1@
- 急!!!請問空軍623-1營區在哪裡--
- 我想要擁有一份好工作^^
此文章來自奇摩知識+如有不便請留言告知
能不能讓2個指令同時執行因為剛啟動跑滑鼠指令進入球迴圈後滑鼠事件就停止監控了能一邊跑迴圈一邊控制滑鼠事件嗎??以下是我的程式import java.awt.event.*;import java.awt.*;import java.applet.Applet; public class jjjjj extends Applet implements MouseListener,MouseMotionListener{ int x=100,y=100,dx=-1,dy=1; int r=10; int X_MAX=640,Y_MAX=480; int X=0,Y=0;public... 顯示更多 能不能讓2個指令同時執行因為剛啟動跑滑鼠指令進入球迴圈後滑鼠事件就停止監控了能一邊跑迴圈一邊控制滑鼠事件嗎?? 以下是我的程式 import java.awt.event.*; import java.awt.*; import java.applet.Applet; public class jjjjj extends Applet implements MouseListener,MouseMotionListener{ int x=100,y=100,dx=-1,dy=1; int r=10; int X_MAX=640,Y_MAX=480; int X=0,Y=0; public void init() { addMouseListener(this); //加入滑鼠監聽者 addMouseMotionListener(this); //加入移動滑鼠監聽者 } public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e) { X = 0; Y = 10; showStatus(\"滑鼠進入applet\"); //顯示狀態列訊息 repaint(); } public void mouseExited(MouseEvent e) { X = 0; Y = 10; showStatus(\"滑鼠離開applet\"); //顯示狀態列訊息 repaint(); } public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e) { X = e.getX(); Y = e.getY(); showStatus(\"滑鼠位置: \" + X + \", \" + Y); //顯示狀態列訊息 repaint(); } public void paint(Graphics www){ while(true){ www.drawLine(0,0,0,480); www.drawLine(0,0,640,0); www.drawLine(1,479,639,479); www.drawLine(639,1,639,479); try { Thread.sleep(0,100); } catch (Exception e) { System.err.println(e.toString()); } www.setColor(Color.WHITE); www.fillOval(x-r,y-r,r*2,r*2); x += dx; y += dy; if (x-r=X_MAX) { x=X_MAX-r; dx=-dx; } if (y-r=Y_MAX) { y=Y_MAX-r; dy=-dy; } System.out.print(x); System.out.print(\",\"); System.out.println(y); www.setColor(Color.BLACK); www.fillOval(x-r,y-r,2*r,2*r); } } } 更新: 上面的程式先不用解了幫忙說一下以下指令如何使用 Thread這個指令怎麼用 public void start() public void run()
最佳解答:
hi Billing , 當然可以同時跑兩段程式, 但是你的寫法不行, 因為只有一個執行緒(Thread), 所以當你程式進入 paint 的 while loop 時, 該Thread的主控權就被完全佔用了, 所以形同當機. 必須產生另一個Thread才能同時執行畫面不斷的update(paint), 原來的Thread還給系統. 最簡單寫法就是本程式實作(implements) Runnable(Thread 的父類別). 然後在 inti 的最後面起始一個新Thread(this 其實就是本程式)呼叫start, start 自動呼叫 run. 所以 while loop 放在 run, run只負責呼叫 repaint 就行了, 此程式就跑的完美了. 程式如下 : import java.awt.event.*; import java.awt.*; import java.applet.Applet; public class jjjjj extends Applet implements MouseListener,MouseMotionListener, Runnable { //=X_MAX) { x=X_MAX-r; dx=-dx; } if (y-r=Y_MAX) { y=Y_MAX-r; dy=-dy; } www.setColor(Color.BLACK); www.fillOval(x-r,y-r,2*r,2*r); //} } //
其他解答:F6C3603064EF4E9D
留言列表