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

هل تحتوي الجافا على destructor class function

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

السلام عليكم

لقد قمت بعمل شاشتين الاولى اسمها a والثانية b وفي الشاشة a يوجد بوتن عند الضغط عليه يظهر الشاشة b عن طريق هذا الكود:

b.show();

ويوجد في الشاشة b بوتن تقوم باغلاق النافذه عن طريق هذا الكود:

setVisible(true);

وهذا الكود يعمل على اخفاء الشاشة b ولكن انا اريد ان يتم ازالة كل المعلومات التي موجوده في b لكي عندما اقوم باستدعائها مرة ثانية يتم تكوين الشاشة من جديد

ارجو ان يكون السؤال واضح

#2
اقتباس
وهذا الكود يعمل على اخفاء الشاشة b ولكن انا اريد ان يتم ازالة كل المعلومات التي موجوده في b لكي عندما اقوم باستدعائها مرة ثانية يتم تكوين الشاشة من جديد

حل سريع اعد تعريف b

b= new JFrame();

منقطع من حين لاخر

#3

شكرا اخي ابو الفؤاد

حلك السريع فعال :D

شكرا جزيلا

#4

الحل مزبوط ميه بالميه

ولكن مع احترامي للحل وصاحبو : يوجد طريقه اكثر احترافيه وهي :

انك تعمل بالـ actionPerformed وضمن شرط النقر على OK :

f.pack();

#5

هل الاوبجكت b من نوع JFrame او كلاس عامل extend للـ JFrame ?

يعني انتا محتاج لعرض الفريم من جديد او لانشاء كائن جديد ؟

و الميثود pack اصلا لا تعيد تحميل الفريم من جديد !

اقتباس
Causes this Window to be sized to fit the preferred size and layouts of its subcomponents. If the window and/or its owner are not yet displayable, both are made displayable before calculating the preferred size. The Window will be validated after the preferredSize is calculated.

منقطع من حين لاخر

#6

في الجافا لايوجد destructor ويوجد constructor

#7

لا يوجد في الجافا destructor لكن يوجد من يقوم بعلمه تقريباً وهو finalize

لكن وقت إستدعائه عند قيام الGC بتفريغه , يعني لا يوجد ضمان على إنه سيستدعى بمجرد إنتها ال Scope

#8

destructor = حذف أوبجكت عن طريق التعليمه delete ( على ماأذكر )

فكرتها مختلفه عن finalize فالثانيه لاتقوم بعمل شئ سوا إغلاق المصادر المفتوحه socket ,DBConection

بل أحياناً finalize تستخدم لجعل الاوبجكت live أكثر من اللازم !

#9

finalize يمكنك عمل override لها لجعل بعض الأفعال تتنفذ عند تدمير الأوبجكت

SCJP 5.0

#10

هلا عيسى

الdestructor يستخدم لتفريغ الكائن من الذاكرة وإغلاق الملفات والمصادر (rescource) المفتوحة . يعني يعمل عند إنتهاء حياة الكائن .

والfinalize إذا عملت له override فيمكنك فعل ما يفعله الdestructor لكن مع إختلاف بسيط وهو أن وقت الإستدعاء غير معروف أو غير مرتبط بإنتهاء الScope .

#11

كلامكم صحيح

اللي أقصده بأن لايصح قول أن finalize هو المناظر للـdestructor ، فقط

وشكراً للجميع ،

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

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