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

مشكلة وانحلت

مغلق
بدأه حسام الملحم في 14 مارس 2002 · 12 رد · 1,380 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم،

إلى كل مبرمجي الجافا سواء من الجامعة أو من خارجها

هل واجهتك مشكلة عرض الـ Exception عندما يكون كبيراً في شاشة ال Dos؟

ألا تتمنى عرضها في GUI؟

حيث يمكنك التقاط عشرات الـ Exceptions في آن واحد

تخيل الException الآتي،

java.lang.NullPointerException



	at T$1.actionPerformed(T.java:13)



	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1767)



	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1820)



	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)



	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)



	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:258)



	at java.awt.Component.processMouseEvent(Component.java:5021)



	at java.awt.Component.processEvent(Component.java:4818)



	at java.awt.Container.processEvent(Container.java:1380)



	at java.awt.Component.dispatchEventImpl(Component.java:3526)



	at java.awt.Container.dispatchEventImpl(Container.java:1437)



	at java.awt.Component.dispatchEvent(Component.java:3367)



	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3214)



	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2929)



	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2859)



	at java.awt.Container.dispatchEventImpl(Container.java:1423)



	at java.awt.Window.dispatchEventImpl(Window.java:1566)



	at java.awt.Component.dispatchEvent(Component.java:3367)



	at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)



	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:190)



	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)



	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)



	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)



	at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)

هذا الخطأ كان بسبب NullPointerException إلا أن هذا الخطأ من الصعب اكتشافه حيث أنك لا تدري من أين يصدر الخطأ، لأن شاشة الDos لا تريك إلا الجزء الأخير منه، أليس كذلك؟

فقد واجهتي هذه المشكلة كثيراً مما جعلني أبرمج صفوف تساعدني على عرضها في GUI.

فإليكم هذه الصفوفClasses في المدرج.

كل ما عليكم فعله بعد تحميل الحزمة package monitor أن تحمله في البرنامج بطباعة:

import monitor.*;     // هذه لتحميل الحزمة

ومن ثم كتابة السطر الآتي في أول جملة في main() كما في الآتي:

public static void main(String [] args){

	MonitorManager.setMonitorAsDefaultErrorOutput();   //لجعل طباعة الException في GUI

	// start your program

	.

	.

	.

}

Documentation متوفر

ملاحظات:

1-مزيداً من التفاصيل ستنشر عن هذا المنتج قريباً بإذن الله حيث يمكنك الطباعة إليه مباشرة باستخدامك System.out.println() على سبيل المثال.

2- الكود مجاني لمن أراده

3-كما أن أجوبة المنتدى تنتظر أسئلتكم ومشاركاتكم.

فلمن أراد الحزمة الرجاء نشر البريد الالكتروني هنا حتى أستطيع إرسالها على بريدكم. فإني لم أستطع إنزاله في المنتدى فحجم الحزمة 8 ك.ب. و Documentation 30kb ، فالمنتدى يقبل 30 بايت فقط!! تخيل !!!

أرجو من الجميع إعلامي عن رأيهم في الحزمة وشكراً

#2

السلام عليكم ورحمة الله وبركاته

اخي ابو مازن ارجو ارسال الحزمة مع موثقاتها الى، وسوف ارسل لك رسالة لترفق البرنامج في الرد

وشكرا مقدما،

ملاحظة : هل النص (الكود) متوفر ام لا ، ان يكن كذلك فارجو ارفاقه مع الرد وشكرا مرة اخرى لتعاونك.

#3

السلام عليكم، كيف أرسل لك؟؟ من أين وكيف أعرض بريدك وشكراً؟؟

#4

السلام عليكم،

إلا كل من لديه حزمة Monitor

مزايا جديدة:

Class MonitorManager

1- استخدم MonitorManager.setMonitorAsDefaultOutput();//nice

كي تصبح System.out.println(); تطبع على JTextField

2- استخدم MonitorManager.setMonitorAsDefaultErrorOutput();

كي تصبح System.err.println(); تطبع على JTextField

ملاحظة: ينصح باستخدام 2 في كل البرامج في أول سطر من main();

3- استخدم MonitorManager.setMonitorAsDefaultSystemOutput();

كي تصبح تنفذ عمل 1 و 2

4- استخدم MonitorManager.setDefaultOutput();

كي تصبح System.out.println(); تطبع على Dos

5- استخدم MonitorManager.setDefaultErrorOutput();

كي تصبح System.out.println(); تطبع على Dos

6- استخدم MonitorManager.setDefaultSystemOutput();

كي تصبح تنفذ عمل 4 و5

والبقية تأتي كما أرجو منكم الإفادة..........

ولمن أراد الحزمة فهي مجانية، أرسلي أو أعرض بريدك هنا

وشكراً

#5

جهد مشكور بارك الله فيك.

كتبت هذا الكود واشتغل معي على مايرام

import monitor.MonitorManager;

class myMonitor{

	public static void main(String[] Monitorargs){

  MonitorManager.setMonitorAsDefaultOutput();

  System.out.println("Monitor is good");

	}

}

وكان على احسن مايكون وحفظت النتيجة في ملف خارجي

الحزمة ممتازة جدا اودعوك الى التفكير في في مشاريع قوية اخرى

وانصحك بالاستفادة من المصدر code لبرنامج freenet فهو متوفر وقوي جدا.

وهناك ملاحظة:

ما وظيفة Hide

#6

لقد طورت الحزمة، فهي قابلة الآن لتأخذ مكان System.in فيصبح بالإمكان أيضاً أخذ input و إخراج output في ال Monitor

ماعليك سوى كتابة السطر

MonitorManager.setMonitorAsDefaultSystemIO();// to forget about the System class

ثم أكمل برنامجك

BufferedReader stdin =new BufferedReader(new InputStreamReader(System.in));// for input from JTextField

الحزمة نافعة للمبتدئين، والذين مازالوا يستخدمون شاشة Dos للإدخال والإخراج.

أما للمبرمجين فهي ممتازة باستعمال

MonitorManager.setMonitorAsDefaultErrorOutput();// to know about any exception as it occurs specially when using GUI.

حيث أنها تعلمك حالة صدور الخطأ مباشرة بعرضها على الشاشة.

أما عن وظيفة زر Hide يا ميم سين، فهو لإخفاء الـ Monitor دون إغلاق البرنامج، فعندما يصدر خطأ آخر تعود النافذة للظهور من جديد. ولذلك فإني عادة أستخدمها في البرامج الكبيرة نسبياً.

أما عن برنامجك السابق فاعلم أن ال monitor لا تظهر إلا عندما تستدعي أمر println.

أما عن الاصدار الجديد فهو متوفر لمن أراده مع السورس كود(جديد) و Documentation، كل ما عليك هو مراسلتي أو نشر بريدكم في هذا المنتدى.

ملاحظة:

أسئلة :

كيف أعرض الكود من اليسار إلى اليمين كما في رسالتك يا ميم سين؟

code لبرنامج freenet ؟ ماذا يعمل؟

#7

شكرا على الشرح الوافي،،،

*بخصوص جعل الكود من اليسار الى اليمين فانا استخدم

<span dir=ltr>

ثم اكتب الكود

ثم

</span>

بخصوص freenet فهو مصدر مفتوح لمشروع تطوعي قام به بعض المبرمجين باستخدام الجافا.

وتجده على موقع freenet.sourceforge.net

وشكرا

*لا ادري اذا كان لك صلاحية كتابة html في المنتدى؟؟

#8

هذا هو Monitor package

#9

الملف فاضي ...

عموما أرسله هنا الله لا يهينك ...

s996251@kfupm.edu.sa

أنا شكلي أبسوي Editor على غرار JCreator وأحطه هنا بحيث يستخدم الpackage حقتك

مشكور مقدما

#10

thaaaaaaaaaaaaaaanks

#11

thaaaaaaaaaaaaaaaaaaaaaaaanks

#12

غبرت علينا يا اخي الكريم ....

وين لقيت هذا الموضوع

:lol:

#13

إذهب إلى هذا الرابط، فقد ذكرتني بهذا الموضوع..

/index.php?showtopic=131056

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

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