• 0
Guest MKSoft

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

سؤال

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

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

main.jpg

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

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

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

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

EasyJFormMaker_1.01V.rar

تم تعديل بواسطه MKSoft
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

18 إجابة على هذا السؤال .

  • 0

تشكر أخ MKSOFT

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

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

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

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

بارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
تشكر أخ MKSOFT

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

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

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

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

بارك الله فيك

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

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

تم تعديل بواسطه MKSoft
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

تقبل مروري :)

0

شارك هذا الرد


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

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

تقبل مروري

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خير

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

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

تم تعديل بواسطه abuoof
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

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

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

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

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

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

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

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

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

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

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
جزاك الله خير

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

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

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

السلام عليكم

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

تم تعديل بواسطه MKSoft
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

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

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

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

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

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

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

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
بالنسبة لموضوع 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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

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

تحياتي

تم تعديل بواسطه علاء الصالحي
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
كل ما عليك فعله أخ محمد

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

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

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

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

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

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

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

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

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

تحياتي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .