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

تحجيم المستطيل

مغلق
بدأه سند في 29 يونيو 2004 · 4 رد · 579 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم أخواني اتمنى تكونوا بصحة جيدة

في عندي سؤال حول تحجيم المستطيل باستخدام Threads السؤال طالب اعادة تحجيم Rect تلقائيا بشرط تمرير قيم عشوائية للعرض و الارتفاع بعد كل نصف ثانية

انا عملت البرنامج بـThread واحد بس هو طالب استخدام اكثر من Thread في العملية

ارجو من اخواني المساعدة اذا امكن

وهذا الكود :

import java.applet.*;
import java.awt.*;

/*<applet code=rect width=400 height=300></applet>*/

public class rect extends Applet implements Runnable
{

	int change_W;
	int change_H;
	int x_coor=150;
	int y_coor=100;
	Thread t1;
	int i;

	public void init()
	{
  t1 = new Thread(this);
  
  t1.start();
  
  i=0;    
	}





	public void paint(Graphics g)
	{
  change_W=(int) (100*Math.random());
  change_H=(int) (100*Math.random());

  g.setColor(Color.red);
  g.fillRect(x_coor,y_coor,change_W,change_H);
  g.drawRect(x_coor,y_coor,change_W,change_H);
	}

	public void run()
	{
  while(true)
  {
 	 try
 	 {
    repaint();
    i++;
    t1.sleep(500);
 	 }
 	 catch(Exception e)
 	 {
    System.err.println("There is an Error");
 	 }
  }
	}

}
D:\My%20Pictures\صور\my%20images\digital.jpeg
#2

مرحبا اخي سند اولا ناقص عندك في البرنامج ال method stop للThread عشان هيك كان يطبع There is an Error عندما تغلق البرنامج وومكن توضحلي شو قصدك باكثر من Thread يعني اكثر من مستطيل او ايش هاي نفس برنامجك مع ال method stop

import java.applet.*;
import java.awt.*;

/*<applet code=rect width=400 height=300></applet>*/

public class rect extends Applet implements Runnable
{

int change_W;
int change_H;
int x_coor=150;
int y_coor=100;
Thread t1;
int i;

public void init()
{
 t1 = new Thread(this);
 t1.start();
  i=0;    


}





public void paint(Graphics g)
{
 change_W=(int) (100*Math.random());
 change_H=(int) (100*Math.random());
 g.setColor(Color.red);
 g.fillRect(x_coor,y_coor,change_W,change_H);
 g.drawRect(x_coor,y_coor,change_W,change_H);
}

public void run()
{
 while(true)
 {
  try
  {
   repaint();
   i++;
   
   t1.sleep(500);
  
    }
  catch(Exception e)
  {
   System.err.println("There is an Error");
  }
 }
}
 public void stop() {
    if (t1 != null)
      {
      t1.stop();
      t1=null;
      }
  }

}

لست متواجد بشكل يومي

#3

اخي انس ان شاء الله اكون فهمت قصدك هذا البرنامج مثل تاعك بس معدل شوي وبقوم بعملية تحجيم المستطيل 2 Threads و ان شاء الله اكون افدتك

import java.applet.*;
import java.awt.*;

/*<applet code=rect width=400 height=300></applet>*/

public class rect extends Applet implements Runnable
{

int change_W;
int change_H;
int x_coor=150;
int y_coor=100;
Thread t1,t2;
boolean h =true;

public void start() {   
  
    if (h == true)
     {
      
      t1 = new Thread (this);
      t1.start();
      h=false;
       }
   else
   {
    t2 = new Thread(this);
    t2.start();
   }
  
  }





public void paint(Graphics g)
{
 change_W=(int) (100*Math.random());
 change_H=(int) (100*Math.random());
 g.setColor(Color.red);
 g.fillRect(x_coor,y_coor,change_W,change_H);
 g.drawRect(x_coor,y_coor,change_W,change_H);

}

public void run()
{
 while(true)
 {
    
  try
  {
   repaint();
   
   
   t1.sleep(500);
   t2.sleep(500);
    }
  catch(Exception e)
  {
   System.err.println("There is an Error");
  }
 }
}
 public void stop() {
    if (t1 != null)
      {
      t1.stop();
      t1=null;
       }
    else
    {
   	 t2.stop();
        t2=null;
    }
       
  }

}

لست متواجد بشكل يومي

#4

متاسف اجابتي على سؤالك مخربطة شوي بس عدل ال() method start ل

public void start() {   
  
  
    if (h == true)
     {
      
      t1 = new Thread (this);
      t1.start();
      h=false;
       }
   else
   {
    t2 = new Thread(this);
    t2.start();
    h=true;
   }
  
  
}

لست متواجد بشكل يومي

#5

أخي مشكور جدا على الرد والبرنامج شغال

ماقصرت ابدا

D:\My%20Pictures\صور\my%20images\digital.jpeg

هذا الموضوع مغلق.

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