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

.. دمج برنامجين ..

مغلق
بدأه نحلة نشيطة في 24 أغسطس 2005 · 11 رد · 1,289 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

.. مساؤكم كل السعادة ..

.. الحقيقة لدىّ برنامجي جافا .. كلاهما منفصلين يعملان بصورة رائعة .. و لكنني أحتاجهما مدمجين ..

.. بعد الدمج .. لم يعمل احدهما رغم كل محاولاتي للتبديل و التغيير و معرفة السبب ..

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

.. لا أدري هل أضع هنا البرنامجين .. لأجد من يدلني على الطريقة الصحيحة لدمجهما ..

.. أم أضع البرنامج الذي قمتُ أنا فيه بعملية الدمج مع تخوفي من أنني أغفلتُ شيئاً ..

.. في انتظار اجاباتكم..

.. مع جزيل الشكر مقدماً ..

كما أريد أن أكون .. بأمر الله أكون

#2

وضح كيفية تريد الدمج،، ضع البرنامجين!

#3

قومي بعمل برنامج ثالث وان يحتوي على الاسلوب main بشرط ان لا تستخدمي الاسلوب main في الاول والثاني وقومي بعمل التالي في البرنامج الثالث

Class c1 = new Class()
Class1 c2 = new Class1()

ثم كالمعتاد استخدمي الاساليب في c1 و c2

تم تعديل هذه المشاركة بواسطة مجدي محمود في 24 أغسطس 2005 في 22:51

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

#4

مرحبا

أخي أبومازن

أدرجت ملفات البرنامجين مع هذا الرد

من الملف ip.java أنا لا أريد سوى CreateOps() method لإستخدامها في البرنامج HistogramViewer.java ..

أخي مجدي محمود

لم ينفع الكلاس لأن هناك variable يجب أن يكون مشترك وهو Bufferedimage و التي يقوم البرنامج ip.java بعدة علمليات image processing عليها و البرنامج HistogramViewer بعمل الهستوجرام و equlized image ..

لربما هُيأ لي أنه لا ينفع .. الحقيقة لم أعرف كيف الاستفادة من CreateOps() method في البرنامج HistogramViewer.java و هذا هو محور مشكلتي ..

جزيل الشكر مقدما

كما أريد أن أكون .. بأمر الله أكون

#5

هذه هى الملفات

ip.zip

كما أريد أن أكون .. بأمر الله أكون

#6

الحل الصحيح هو ان تستخدمي singleton pattern لتحصلي على الكائن من نوع ip.

هناك حل مبدئي وهو سوي كلاس جديد مثلا اسمه ObjectStorage

وضعي فيه

public static ip ipObject

ثم قومي باستدعاء الميثود اللي تبغينها عن طريق هذا الكائن

ObjectStorage.ip.createOps();

ولاتنسي انك تعرفي هذا الكائن داخل الكلاس ip

ObjectStorage.ip = this;

تم تعديل هذه المشاركة بواسطة مبتدئ جدا في 25 أغسطس 2005 في 18:12

اسف سوف اقطعك من كتابة الكود، ادخل هنا لدقيقتين فقط

http://www.shbab1.com/2minutes.htm

#7

أخي مبتدئ جدا

شكراً للرد ..

الطريقة التي اقترحتها أنت سوف تقوم بنداء CreateOps() method في البرنامج الرئيسي و أنا ليس عندي مشكلة في ذلك سواء إن وضعتها في كلاس و ناديته في البرنامج الرئيسي أو نقلت method إلى البرنامج الرئيسي و ناديتها من هناك ..

المشكلة هى في استخدام هذه method ، أعني البرنامج الرئيسي يقوم بعمل Histogram equlization لinput image بعد أن يحولها grey image و من ثم يعرض الصورة الأصلية الملونة، الصورة بgray scale و الصورة بعد Histogram equlization و أنا أريد أن أضيف امكانية القيام ببعض عمليات image processing الموجودة في CreateOps() method على نفس هذه الصورة .

كما أريد أن أكون .. بأمر الله أكون

#8

ركز دائما على فصل منطق البرنامج بالواجهة الرسومية! حتى تسهل الكثير.

عندنا HistogramMachine وهذا مسؤول عن تحرير الصور، لكنه غير مسؤول عن عرض الصور أو قراءة الصور من ملف، أو تنفيذ أي برنامج أو أي شيء آخر.

MainProgram عبارة عن Panel يعرض البرنامج المقصود.

بالتوفيق!!

src.zip

#9

أبومازن

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

سأجرب البرنامج و أعود بالتعليق

شكراً لك

كما أريد أن أكون .. بأمر الله أكون

#10

أبو مازن

جربت البرنامج، أعطاني خطأ في

final JComboBox box2=new JComboBox(new Integer[]{1,2,3});

الخطأ هو

MainProgram.java [24:1] incompatible types

found : int

required: java.lang.Integer

final JComboBox box2=new JComboBox(new Integer[]{1,2,3});

^

MainProgram.java [24:1] incompatible types

found : int

required: java.lang.Integer

final JComboBox box2=new JComboBox(new Integer[]{1,2,3});

^

MainProgram.java [24:1] incompatible types

found : int

required: java.lang.Integer

final JComboBox box2=new JComboBox(new Integer[]{1,2,3});

^

3 errors

Errors compiling MainProgram.

فقمت باستبداله بـ :

final JComboBox box2=new JComboBox(new String []{"1","2","3"});

فأصبح أي عملية اختارها مثلا Edge detector تُطبق على الصور الثلاث.

حاولت تبديل في Process method

public void process(String name, String imageNumber){

لكن أعطاني خطأ في :

BufferedImage image = (BufferedImage)imageComponent.getAllImages().get(imageNumber);

لم أعرف أين الخطـأ ؟

كما أريد أن أكون .. بأمر الله أكون

#11

آسف هذه الشفرة تعمل على جافا 5

خذ هذه الشفرة، ستعمل على الإصدار 1,3 وما فوق!!

src.zip

#12

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

بارك الله فيك و بك أخي بومازن

الان هذه التعليمة تعمل بدون خطأ

شكرا لك مرة اخرى

كما أريد أن أكون .. بأمر الله أكون

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

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