Announcement

Collapse
No announcement yet.

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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • สอบถามเกี่ยวกับการ 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
    ดู 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, 01:26:16.

    Comment

    Working...
    X