الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تمرير JLabel لي Thread

بدأه sahraoui dhelim في 26 نوفمبر 2011 · 3 رد · 532 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد ان اعمل loop لا تنتهي تتعامل مع JLabel

اي

while (true){ Mycode}

و لهذا يجب استعمل thread

كيف استطيع تمرير ال JLabel الى run

المشكل هو ان ال constrector الخاص بي ال run بدون بارامارتر

#2

السلام عليكم ..

استخدم الــ Runnable ..

  1. كود الــThread ياستخدام الــ Runnable هو :
    import javax.swing.JLabel;
    
    public class MyThread implements Runnable
    {
    
    	JLabel jLabel ;
    
       public MyThread(JLabel pJLabel)
    	{
       	this.jLabel = pJLabel;
    	}
    
    	public void run()
    	{
        	int i = 0 ;
       	while(true)
       	{
    
           	try
           	{
           	i++;
           	this.jLabel.setText(i+"");
           	System.out.println(i);
           	Thread.sleep(1000);
           	}catch(Exception ex)
           	{
               	ex.printStackTrace();
           	}
    
       	}
    	}
    }

  2. كود تشغيل الــ Thread داخل الفورم الذي عليه الــ JLabel هو :
    private void btnRunMyThreadActionPerformed(java.awt.event.ActionEvent evt)
    	{
    
        	Thread thread = new Thread (new MyThread(jLabel1));
        	thread.start();
    
    	}

2

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3
houssam11350_11350 كتب:

السلام عليكم ..

استخدم الــ Runnable ..

  1. كود الــThread ياستخدام الــ Runnable هو :
    import javax.swing.JLabel;
    
    public class MyThread implements Runnable
    {
    
    	JLabel jLabel ;
    
       public MyThread(JLabel pJLabel)
    	{
       	this.jLabel = pJLabel;
    	}
    
    	public void run()
    	{
        	int i = 0 ;
       	while(true)
       	{
    
           	try
           	{
           	i++;
           	this.jLabel.setText(i+"");
           	System.out.println(i);
           	Thread.sleep(1000);
           	}catch(Exception ex)
           	{
               	ex.printStackTrace();
           	}
    
       	}
    	}
    }

  2. كود تشغيل الــ Thread داخل الفورم الذي عليه الــ JLabel هو :
    private void btnRunMyThreadActionPerformed(java.awt.event.ActionEvent evt)
    	{
    
        	Thread thread = new Thread (new MyThread(jLabel1));
        	thread.start();
    
    	}

شكرا

#4

هذه الفكره ستعمل لكنها تسبب مشاكل بعد ذلك

ولا تضمن انها ستعمل مع الجميع بدون تهنيج الـ GUI

لكن من الافضل ان تستخدم الـ java.swing.Timer فهو مخصص لعمل Thread يتعامل مع المكونات الخاصه بالـ GUI

فكلامى او نصيحتى كانت عن تجربه حدثت معى ممكن تشوفها من هنا

/index.php?showtopic=227194

روابط تكلمت عن هذه الجزئية

/index.php?showtopic=173332&view=findpost&p=878030

http://java.sun.com/products/jfc/tsc/articles/threads/threads1.html

3

Software Developer
Mahmoudkelany.com


 

مواضيع مشابهة