overclockzonefanpage  overclockzoneth  TV  
Results 1 to 2 of 2

Thread: สอบถามเกี่ยวกับการ delay ของ Java อ่ะครับ

  1. #1
    OverclockZone Member beautyless's Avatar
    Join Date
    18 Sep 2006
    Location
    พระราม 9 กรุงเทพฯ

    Default สอบถามเกี่ยวกับการ delay ของ Java อ่ะครับ

    ตรงนี้จะเป็นส่วนหนึ่งที่ตัดมาจากโปรแกรมของผม


    System.out.println("botcheck");
    for(i=1 ; i<=8 ; i++)
    {
    for(j=1 ; j<=8 ; j++)
    {
    jlb[i][j].setIcon(im5);
    }
    }
    System.out.println("sleep 1 second");
    Thread.sleep(1000);
    System.out.println("wakedup");



    Thread.sleep(1000);เอาไว้ทำให้เครื่องมันดีเลย์หรือหน่วงเวลาไปชั่วขณะหนึ่ง(ประมาณ 1 วินาที) มันก็ดีเลย์ไปหนึ่งวินาทีอย่างถูกต้องครับ แต่มันกลับทำงานบรรทัด "jlb[i][j].setIcon(im5);" หลังการ delay แล้วทั้งๆที่วางประโยคนี้ไว้ก่อนการดีเลย์

    ปล.
    jlb[][] มี type เป็น JLabel สร้างไ้ว้สำหรับแสดงผลรูปภาพ ของ im5 ที่มี type เป็น ImageIcon
    ทั้งๆ ที่ให้มันเซตรูปก่อนแล้วค่อย delay แต่มันกลับเซตรูปทีหลัง ซึ่งต่างจากส่วน System.out.println("botcheck"); กับ System.out.println("sleep 1 second"); ที่อยู่ก่อน Thread.sleep(1000); เช่นกัน กลับแสดงผลก่อนการ delay

    คืออยากให้มันเซตรูปก่อนการ delay น่ะครับ พอมีวิธีการแก้ปัญหามั้ยครับ

    ปล2. เพื่อความเข้าใจ ลำดับขั้นการทำงานมีดังนี้
    1. แสดงคำพูด System.out.println("botcheck");
    2. แสดงคำพูด System.out.println("sleep 1 second");
    3. ดีเลย์ Thread.sleep(1000);
    4. เซตไอคอน jlb[i][j].setIcon(im5); ในลูป
    5. แสดงคำพูด System.out.println("wakedup");

    ใครมีความเข้าใจเกี่ยวกับการใช้เทรดสลีปช่วยบอกด้วยนะครับว่าำ ทำไมไม่ทำงานเรียงลำดับ แล้วมีวิธีการแก้ไขอย่างไร
    ปล3. ประยุกต์์การดีเลย์ด้วยการใช้เทคนิค for(;i<300000000;i++){} แทนการใช้ Thread.sleep(1000); ก็มีผลเหมือนกัน

  2. #2
    OverclockZone Member maxzerker's Avatar
    Join Date
    17 Sep 2006

    Default

    ดู code procedure แล้วคนละเรื่องกับที่เขียนเลยนะ - -"

    System.out.println("botcheck");
    for(i=1 ; i<=8 ; i++) {
    for(j=1 ; j<=8 ; j++) {
    jlb[i][j].setIcon(im5);
    System.out.println("sleep 1 second");
    Thread.sleep(1000);
    }
    }
    System.out.println("wakedup");

    ปล.อย่าถามผม ... ผมเกลียด java :P
    Last edited by maxzerker; 30 Mar 2007 at 01:26:16.


Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •