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

إعادة بناء برنامج Easy Jform Maker على Jdk 6

بدأه MKSoft في 20 يوليو 2009 · 18 رد · 2,156 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

البرنامج الذي سوف تشاهده إذا زرت الرابط التالي , كان قد صمم على Java JDK 7 , ولذلك واجه كل الأعضاء مشكلة عدم عمل البرنامج بنجاح , ولذلك قمت بإعادة بناء جزء منه على الإصدار السادس JDK 6 , حتى أتخلص من المشاكل السابقة

main.jpg

لأخذ نظرة عامة عن البرنامج .. نرجوا زيارة الرابط التالي

تفضل بزيارة الرباط .... (برنامج لبناء الواجهات من تصميم) هنا

أتمنى أن ينجح البرنامج هذه المرة ,, و تقبول فائق احترامي

البرنامج الجديد الذي يعمل على الإصدار السادس في المرفقات ..

EasyJFormMaker_1.01V.rar

تم تعديل هذه المشاركة بواسطة MKSoft في 16 سبتمبر 2009 في 21:57

1
#2

تشكر أخ MKSOFT

لقد تم تنفيذ البرنامج بنجاح، وفكرة البرنامج جد رائعة ويحتاج الكثير من الاضافات بالطبع لينافس NetBeans and Eclipse

فهل تنوي المنافسة يا ترى ؟ :D دعها على الهامش

و البرنامج طماح

وفي انتظار تجريبه أكثر لنوافيك بالملاحظات.

بارك الله فيك

#3
اقتباس
تشكر أخ MKSOFT

لقد تم تنفيذ البرنامج بنجاح، وفكرة البرنامج جد رائعة ويحتاج الكثير من الاضافات بالطبع لينافس NetBeans and Eclipse

فهل تنوي المنافسة يا ترى ؟ biggrin.gif دعها على الهامش

و البرنامج طماح

وفي انتظار تجريبه أكثر لنوافيك بالملاحظات.

بارك الله فيك

جزاك الله خيرا أخي , وشكرا على مشاركتك.. بس بصراحة أنا ما صممت البرنامج لكي ينافس أبدا NetBeans أو غيره , لان هذه البرامج صصمت من قبل مبرمجين مهرة و ذوي خبرة , على الرغم انني أتمنى لو يأتي يوم نستطيع فيه نحن المسلمين الوصول لمرحلة نكون فيها نحن المنتجين للتكنولوجيا و ليس مجرد مستخدمين ..

نهاية كلامي , اتمنى ان يأتي يوم ينافس فيه برنامجي برامج كبرى مثل NetBeans, Eclips وغيره ,, حيث انني سأسعى لان اطوره , وبصراحة يحتاج للكثير من التحسينات ..

تم تعديل هذه المشاركة بواسطة MKSoft في 21 يوليو 2009 في 01:04

1
#4

بصراحه قمة الإبداع ومجهود رائع وقد فكرت أسوي نفس فكرتك قبل فتره ولكن شفت أن المسأله بتطول وفيها عقبات كثيره فماعاد حاولت :(

أتمنى لك التوفيق أخي محمد واستمر في تطويره مثل إضافة إمكانية كتابة الكود وإن شاء الله ربي يوفقك وترجعه أفضل من النت بينز وإلى الأمام بأذن الله :)

تقبل مروري :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#5
اقتباس
بصراحه قمة الإبداع ومجهود رائع وقد فكرت أسوي نفس فكرتك قبل فتره ولكن شفت أن المسأله بتطول وفيها عقبات كثيره فماعاد حاولت sad.gif

أتمنى لك التوفيق أخي محمد واستمر في تطويره مثل إضافة إمكانية كتابة الكود وإن شاء الله ربي يوفقك وترجعه أفضل من النت بينز وإلى الأمام بأذن الله

تقبل مروري

تسلم أخي محمد , وشكرا على اعجابك بالبرنامج , وبإذن الله ساعمل على تحسينه , و اسأل الله أن يوفقني و إياك لخدمة دينه , وأن يجمعنا على خير بإذنه تعالى.

#6

جزاك الله خير

ساجرب في اقرب وقت

ولكن هل يعمل بكفائة مع لينوكس ام لا؟

تم تعديل هذه المشاركة بواسطة abuoof في 21 يوليو 2009 في 23:16

مدونتي

برمجة وما يتبعها

#7

السلام عليكم

ما شاء الله مجهود جبار أخ محمد

عندي بعض استفسارات

أرى أنك استخدمت ما يسمى Bundle فما هي فائدته؟

أظن أن له علاقة بتعدد اللغات

هل له أي فائدة أخرى؟؟

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

كيف قمت بذلك؟؟؟

عندي ملاحظة غريبة نوعاً ما

عندما حاولت حفظ ملفي على سطح المكتب توقف البرنامج كلياً

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8
اقتباس
جزاك الله خير

ساجرب في اقرب وقت

ولكن هل يعمل بكفائة مع لينوكس ام لا؟

تحياتي اليك أخي abuoof ,, وطالما أنه مصمم على الجافا , فإني أتوقع أن يعمل , على العموم , حاول تجربته لينكس للتأكد من ذلك , وبارك الله فيك .

اقتباس
السلام عليكم

ما شاء الله مجهود جبار أخ محمد

شكرا يا علاء على المتابعة و الاهتمام , وجزاك ربي خيرا .

اقتباس
عندي بعض استفسارات

أرى أنك استخدمت ما يسمى Bundle فما هي فائدته؟

أظن أن له علاقة بتعدد اللغات

هل له أي فائدة أخرى؟؟

بصراحة يا علاء , أنا شخصيا لا اعرف لماذا تسخدم بالضبط , حيث اني لم اتعمد استخدامها في البرنامج , وإنما برنامج NetBeans ينشأها بشكل تلقائي ,

ولكن أحد فوائدها التي أعلمها ,انه بإمكانك وضع جميع عناوين العناصر المكونة لمشروعة في ملف معين بحيث يسهل استرجاعها.

مثال : لو قمت بفتح المشروع سوف تجد ملف اسمه Bundle.properties يحتوي على قيم لعناصر مختلفة , بحيث ان أي عنصر من عناصر المشروع يستطيع أن يأتي بعنوانه من هذا الملف المشترك ... ( أي أنه نوع من التنظيم ) .. هذا أحد الفوائد على ما أعلم ,, و الله أعلى و أعلم .. ارجوا أن يكون تفسيري واضح , و إن لم يكن كذلك , أظنك يا أستاذنا علاء لن تجد صعوبة في تفسير ذلك من خلال اهتمامك بالموضوع .

اقتباس
بالنسبة لتحريك المكونات

كيف قمت بذلك؟؟؟

أخي علاء , تحريك العناصر في حقيقته , ما هو إلا إعادة رسم العنصر في كل مرة يتم في تحريك مؤشر الفأرة .

اقتباس
عندي ملاحظة غريبة نوعاً ما

عندما حاولت حفظ ملفي على سطح المكتب توقف البرنامج كلياً

أتوقع أن نظام التشغيل ويندوز الذي تمتلكه , ذو نسخة عربية , حيث انني واجهت نفس المشكلة , انك إذا قمت بحفظ الملف على سطح المكتب , فإنه ينتج عن ذلك Exception , ربما لان المسار سيكون كالتالي

D:\Documents and Settings\mk\سطح المكتب

أي أنه يحتوي على كلمة ذات أحرف عربية "سطح المكتب" , وبصراحة لم أستطع حلها ,, للأسف الشديد ..

تم تعديل هذه المشاركة بواسطة MKSoft في 22 يوليو 2009 في 19:49

#9

بالنسبة لموضوع Bundle فهي فعلاً كما توقعت أنا

لجعل البرنامج متعدد اللغات

بحيث يتم تشغيل البرنامج باللغة المناسبة للمستخدم مباشرة

وهذا التوثيق الخاص بالفئة ResourceBundle

http://java.sun.com/j2se/1.4.2/docs/api/ja...urceBundle.html

بالنسبة لموضوع الرسم

أنا جربت موضوع رسم الأشكال مسبقاً

لكني لم أجرب موضوع تحريك المكونات

لذا أخبرني بالتفصيل من فضلك

بالنسبة لموضوع سطح المكتب فأنا أستخدم نسخة إنجليزية الواجهة

كما أني لا أحص على خطأ بين

(أقصد أني لا أحصل على شيء في سطر الأوامر)

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#10
اقتباس
بالنسبة لموضوع Bundle فهي فعلاً كما توقعت أنا

لجعل البرنامج متعدد اللغات

بحيث يتم تشغيل البرنامج باللغة المناسبة للمستخدم مباشرة

وهذا التوثيق الخاص بالفئة ResourceBundle

http://java.sun.com/j2se/1.4.2/docs/api/ja...urceBundle.html

معلومة جيدة أخ علاء ,, شكرا جزيلا للبحث عن تفاصيل الموضوع

اقتباس
بالنسبة لموضوع الرسم

أنا جربت موضوع رسم الأشكال مسبقاً

لكني لم أجرب موضوع تحريك المكونات

لذا أخبرني بالتفصيل من فضلك

بالنسبة لقضية تحريك العناصر , الموضوع أبسط مما تتصور .. أنظر الفكرة التالية :

public class DesignerPanel extends JPanel{

	Button comp = null; 
	int xPos,yPos;
	public DesignerPanel(){

		Button comp = new Button();

		addMouseMotionListener( new MouseMotionAdapter() {
			public void mouseDragged( java.awt.event.MouseEvent evt ){
					xPos = evt.getX();
					yPos = evt.getY();

					setCursor(new Cursor(Cursor.MOVE_CURSOR));

					comp.minX = xPos;
					comp.minY = yPos;

					repaint();

				}} );

	}// End of Constructor

	public void paintComponent(Graphics g){
		super.paintComponent(g);

		comp.draw(g);
	}


}

/************************************************************/

public class Button{	

	public int minX;
	public int minY;


	//User implementation method - not built in
	public void draw(Graphics g){
		g.setColor(Color.DARK_GRAY);
		g.fillRect(minX, minY, 80, 25);
	}
}

كما تلاحظ في الكود .. تجد ان هنا MouseListener , وهو المختص بما يسمى بعملية السحب و الإفلات , أي Dragging , بمعنى أنه في حالة تم عمل سحب من خلال مؤشر الفأرة , فإن MouseListener يكون في حالة استماع لحدث التحريك بحيث انه يرسل في كل مرة قيمة minX و minY للعنصر , بحيث أن قيمة كل منهما تساوي نفس قيمة x,y الخاصة بموضع مؤشر الفأرة , وأثناء ذلك يتم مسح كل الرسم السابق , وفي نفس اللحظة يتم رسم العنصر في مكانه الجديد.

أرجوا أن تكون قد توضحت الفكرة يا أستاذي علاء ..

و أنا جاهز لأي تعليقات

تم تعديل هذه المشاركة بواسطة MKSoft في 23 يوليو 2009 في 17:42

#11

على فكرة اعتقدت أنك تقوم برسم مكونات حقيقية

وليس مكونات شكلية

على كل استفدت من الفكرة نفسها

الآن أصبحت أستاذي

لذا نحن متساوون

بالتالي ناديني علاء فقط :)

بالمناسبة قمت بإضافة المشروع للمواضيع المميزة

تحياتي

تم تعديل هذه المشاركة بواسطة علاء الصالحي في 23 يوليو 2009 في 23:31

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#12

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

نضرا لاهتمامي بموضوع تنفيذ أوامر الجافا برمجيا ، حاولت تتمة بناء أكواد الجافا التي ينشؤها برنامج

Easy Jform Maker بتنفيذها و هذا بادراج Menu جديدة تحمل اسم Compile and Run مثلا وتحمل Item تنفذ الكود التالي:

//نقوم باستخدام الActionperformed Event كما بالItem To java from Generate Menu
  private void CompileActionPerformed(java.awt.event.ActionEvent evt) {                                        
frame.GenerateByteCode();
    }      

//المتود المناداة أعلاه هي كالآتي
    void GenerateByteCode() {
          if( DesignerPanel.genFile !=null  ){
              String  [] envp= {};
              String root=DesignerPanel.genFile.getName();
              String javaFile= root+".java";
          String path = DesignerPanel.genFile.getParent();

            try {

   Process p = Runtime.getRuntime().exec("\"C:\\Program Files\\java\\jdk1.6.0\\bin\\javac.exe\" "+" "+javaFile,envp,new File(path));
               p.waitFor();                
               Runtime.getRuntime().exec("\"C:\\Program Files\\java\\jre1.6.0\\bin\\java.exe\" "+" "+root,envp,new File(path)); 

            } catch (IOException ex) {
                ex.printStackTrace();
            } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }



          }
          else JOptionPane.showMessageDialog(null, "the java code not yet generated..","information message",JOptionPane.INFORMATION_MESSAGE);
    }

ملاحظات:

المتود ناجحة في انشاء .class File عن طريق ال .javaFile و من ثم تنقيذه

لكن تحتاج لبعض التعديل للتأكد من كون java code file منشأ

وملاحظة أخرى هو فصل Compile عن Run مثلما نجده بباقي ال IDEs.

#13

جميل أخت أسماء

فكرة جيدة جداً

أتمنى أن يستفيد منها الأخ محمد

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#14

بارك الله فيك اختي الكريمة على الاهتمام , وجعله اللله في ميزان حسناتك ,,, وفعلا إضافة رائعة جدا للبرنامج , لكن المشكلة الوحدية هنا , هو يجب ضمان أن مسار JDK الخاص بنظام التشغيل المعمول عليه هو على نفس المسار المكتوب في البرنامج.

#15

كل ما عليك فعله أخ محمد

أن تطلب من المستخدم مسار JDK الخاص به

وبهذا تنتهي المشكلة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#16
اقتباس
كل ما عليك فعله أخ محمد

أن تطلب من المستخدم مسار JDK الخاص به

وبهذا تنتهي المشكلة

فكرة معقولة أخي علاء ,,, وكلام سليم 100%

#17

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

شكرا لكما أخ علاء و محمد.

بالنسبة لتحديد مساريjavac and java لأني لم أضفهم أصلا لقائمة متغيرات النظام (علما أني أتكلم عن نظام ويندوز)

و أعتد أنه بتحديد مساري البرنامجين أعلاه يمكن الاستغناء عن ذكر المسار والاكتفاء بذكر الأمر فحسب java and javac

بالنسبة لنظام ويندوز المسار الذي حددته يعتبر افتراضيا عند تنصيب الجافا jdk and jre,ولكن سيكون هناك خلل في حال تغيير نظام التشغيل

ولهذا يجب استخدام الأمر الأشمل والمشترك لجميع الأنظمة. وأعتقد أن المتود exec () تمكننا من ذلك عن طريق استخدام البارامتر envp المذكور في الكود "فهو المختص بمتغيرات البيئة"

بصراحة لم أجربه بعد لأني أخلط بينه وبين System.getProperties()، أترك الشرح لمن له علم بالفرق

اقتباس
كل ما عليك فعله أخ محمد

أن تطلب من المستخدم مسار JDK الخاص به

وبهذا تنتهي المشكلة

كيف يتم ذلك؟ لو سمحتم هل باستخدام System.getEnv(...) .

#18

أخت أسماء الموضوع أسهل

تطلبين من المستخدم تحديد مكان JDK الخاص به

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#19

شكرا على التوضيح :lol:

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